You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@impala.apache.org by st...@apache.org on 2022/10/28 07:38:15 UTC

[impala] 02/02: IMPALA-11669: Set TConfiguration during Thrift connection setup

This is an automated email from the ASF dual-hosted git repository.

stigahuang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/impala.git

commit ea6173440c4e3d56ce12c98aca157c4aaa865cbc
Author: Riza Suminto <ri...@cloudera.com>
AuthorDate: Sun Oct 23 19:53:48 2022 +0700

    IMPALA-11669: Set TConfiguration during Thrift connection setup
    
    THRIFT-5237 Implement MAX_MESSAGE_SIZE and consolidate limits into a
    TConfiguration class. The MAX_MESSAGE_SIZE default to 100MB. This patch
    adds backend flag 'thrift_rpc_max_message_size' to override the default
    MAX_MESSAGE_SIZE by calling function AssignDefaultTConfiguration.
    We set higher default, 1GB, to minimize interruption on existing Impala
    workload. We should consider lowering this default once we ensure that
    all thrift rpc response can be made in batches, such as explained in
    IMPALA-11402.
    
    Thrift tuning for communication with HMS is fixed through HIVE-26633.
    Appropriate Hive version bump is required.
    
    Testing:
    - Add EXPECT_NO_THROW to verify that 'checkReadBytesAvailable' to does
      not throw exception given default FLAGS_thrift_rpc_max_message_size.
    - Add MaxMessageSizeFit and MaxMessageSizeExceeded tests in
      thrift-server-test.
    - Run and pass thrift-server-test
    
    Change-Id: I137683d43c72a34105fd7b32fea3a93532601ae3
    Reviewed-on: http://gerrit.cloudera.org:8080/19162
    Reviewed-by: Wenzhe Zhou <wz...@cloudera.com>
    Tested-by: Impala Public Jenkins <im...@cloudera.com>
---
 be/src/common/init.cc                              |    8 +
 be/src/rpc/TAcceptQueueServer.cpp                  |    3 +
 be/src/rpc/authentication.cc                       |    1 +
 be/src/rpc/thrift-client.cc                        |    1 +
 be/src/rpc/thrift-server-test.cc                   |   34 +
 be/src/rpc/thrift-server.h                         |    9 +-
 be/src/rpc/thrift-util.cc                          |   21 +
 be/src/rpc/thrift-util.h                           |   11 +
 bin/rat_exclude_files.txt                          |    1 +
 testdata/scale_test_metadata/README.md             |   92 ++
 testdata/scale_test_metadata/create-wide-table.sql | 1012 ++++++++++++++++++++
 testdata/scale_test_metadata/load-1k_col_tbl.sh    |   44 +
 12 files changed, 1235 insertions(+), 2 deletions(-)

diff --git a/be/src/common/init.cc b/be/src/common/init.cc
index 776076eb6..f82326a5f 100644
--- a/be/src/common/init.cc
+++ b/be/src/common/init.cc
@@ -78,6 +78,7 @@ DECLARE_string(re2_mem_limit);
 DECLARE_string(reserved_words_version);
 DECLARE_bool(symbolize_stacktrace);
 DECLARE_string(debug_actions);
+DECLARE_int32(thrift_rpc_max_message_size);
 
 DEFINE_int32(memory_maintenance_sleep_time_ms, 10000, "Sleep time in milliseconds "
     "between memory maintenance iterations");
@@ -357,6 +358,13 @@ void impala::InitCommonRuntime(int argc, char** argv, bool init_jvm,
         " be one of [\"2.11.0\", \"3.0.0\"], while the provided value is $0.",
         FLAGS_reserved_words_version));
   }
+
+  if (!impala::TestInfo::is_test() && FLAGS_thrift_rpc_max_message_size > 0
+      && FLAGS_thrift_rpc_max_message_size < ThriftDefaultMaxMessageSize()) {
+    CLEAN_EXIT_WITH_ERROR(Substitute("thrift_rpc_max_message_size must be >= $0 or <= 0.",
+        ThriftDefaultMaxMessageSize()));
+  }
+
   impala::InitGoogleLoggingSafe(argv[0]);
   // Breakpad needs flags and logging to initialize.
   if (!external_fe) {
diff --git a/be/src/rpc/TAcceptQueueServer.cpp b/be/src/rpc/TAcceptQueueServer.cpp
index 45b5c0374..42fef92da 100644
--- a/be/src/rpc/TAcceptQueueServer.cpp
+++ b/be/src/rpc/TAcceptQueueServer.cpp
@@ -43,6 +43,8 @@ DEFINE_int32(accepted_cnxn_setup_thread_pool_size, 2,
     "post-accept, pre-setup connection queue in each thrift server set up to service "
     "Impala internal and external connections.");
 
+DECLARE_int32(thrift_rpc_max_message_size);
+
 namespace apache {
 namespace thrift {
 namespace server {
@@ -242,6 +244,7 @@ void TAcceptQueueServer::SetupConnection(shared_ptr<TAcceptQueueEntry> entry) {
     // TSaslServerTransport::Factory is not required anymore.
     DCHECK(inputTransportFactory_ == outputTransportFactory_);
     io_transport = inputTransportFactory_->getTransport(client);
+    AssignDefaultTConfiguration(io_transport.get());
 
     shared_ptr<TProtocol> inputProtocol =
         inputProtocolFactory_->getProtocol(io_transport);
diff --git a/be/src/rpc/authentication.cc b/be/src/rpc/authentication.cc
index bbf99977e..014f3c5b7 100644
--- a/be/src/rpc/authentication.cc
+++ b/be/src/rpc/authentication.cc
@@ -1228,6 +1228,7 @@ Status SecureAuthProvider::WrapClientTransport(const string& hostname,
     return Status(e.what());
   }
   wrapped_transport->reset(new TSaslClientTransport(sasl_client, raw_transport));
+  AssignDefaultTConfiguration(wrapped_transport->get());
 
   // This function is called immediately prior to sasl_client_start(), and so
   // can be used to log an "I'm beginning authentication for this principal"
diff --git a/be/src/rpc/thrift-client.cc b/be/src/rpc/thrift-client.cc
index 3b1d7d0e2..89bc3f460 100644
--- a/be/src/rpc/thrift-client.cc
+++ b/be/src/rpc/thrift-client.cc
@@ -139,6 +139,7 @@ Status ThriftClientImpl::CreateSocket() {
       return Status(TErrorCode::SSL_SOCKET_CREATION_FAILED, e.what());
     }
   }
+  if (socket_ != nullptr) AssignDefaultTConfiguration(socket_.get());
 
   return Status::OK();
 }
diff --git a/be/src/rpc/thrift-server-test.cc b/be/src/rpc/thrift-server-test.cc
index d5070b70f..8b95d4841 100644
--- a/be/src/rpc/thrift-server-test.cc
+++ b/be/src/rpc/thrift-server-test.cc
@@ -47,6 +47,8 @@ DECLARE_int32(state_store_port);
 
 DECLARE_int32(beeswax_port);
 
+DECLARE_int32(thrift_rpc_max_message_size);
+
 static string IMPALA_HOME(getenv("IMPALA_HOME"));
 static const string& SERVER_CERT =
     Substitute("$0/be/src/testutil/server-cert.pem", IMPALA_HOME);
@@ -146,6 +148,38 @@ TEST(ThriftTestBase, Connectivity) {
   ASSERT_OK(wrong_port_client.Open());
 }
 
+void TestMaxMessageSize(std::string subscriber_id, bool expect_throw) {
+  auto s = ScopedFlagSetter<int>::Make(&FLAGS_thrift_rpc_max_message_size, 128 * 1024);
+  int port = GetServerPort();
+  ThriftServer* server;
+  EXPECT_OK(ThriftServerBuilder("DummyStatestore", MakeProcessor(), port).Build(&server));
+  ASSERT_OK(server->Start());
+
+  ThriftClient<StatestoreServiceClientWrapper> client(
+      "localhost", port, "", nullptr, false);
+  ASSERT_OK(client.Open());
+  TRegisterSubscriberRequest req;
+  TRegisterSubscriberResponse resp;
+  bool send_done = false;
+
+  req.subscriber_id = subscriber_id;
+  if (expect_throw) {
+    EXPECT_THROW(
+        client.iface()->RegisterSubscriber(resp, req, &send_done), TTransportException);
+  } else {
+    EXPECT_NO_THROW(client.iface()->RegisterSubscriber(resp, req, &send_done));
+  }
+}
+
+TEST(ThriftTestBase, MaxMessageSizeFit) {
+  TestMaxMessageSize("dummy_id", false);
+}
+
+TEST(ThriftTestBase, MaxMessageSizeExceeded) {
+  std::string long_id(256 * 1024, 'a');
+  TestMaxMessageSize(long_id, true);
+}
+
 TEST_P(ThriftKerberizedParamsTest, SslConnectivity) {
   int port = GetServerPort();
   // Start a server using SSL and confirm that an SSL client can connect, while a non-SSL
diff --git a/be/src/rpc/thrift-server.h b/be/src/rpc/thrift-server.h
index 7b89fa701..b6696b55b 100644
--- a/be/src/rpc/thrift-server.h
+++ b/be/src/rpc/thrift-server.h
@@ -30,6 +30,7 @@
 #include "common/status.h"
 #include "gen-cpp/Frontend_types.h"
 #include "kudu/security/security_flags.h"
+#include "rpc/thrift-util.h"
 #include "util/condition-variable.h"
 #include "util/metrics-fwd.h"
 #include "util/thread.h"
@@ -76,8 +77,12 @@ class ThriftServer {
         std::shared_ptr<apache::thrift::transport::TTransport> trans) {
       std::shared_ptr<apache::thrift::transport::TTransport> wrapped =
           wrapped_factory_->getTransport(trans);
-      return std::shared_ptr<apache::thrift::transport::TTransport>(
-          new apache::thrift::transport::TBufferedTransport(wrapped, buffer_size_));
+      AssignDefaultTConfiguration(wrapped.get());
+      std::shared_ptr<apache::thrift::transport::TTransport> buffered_wrapped =
+          std::shared_ptr<apache::thrift::transport::TTransport>(
+              new apache::thrift::transport::TBufferedTransport(wrapped, buffer_size_));
+      AssignDefaultTConfiguration(buffered_wrapped.get());
+      return buffered_wrapped;
     }
    private:
     uint32_t buffer_size_;
diff --git a/be/src/rpc/thrift-util.cc b/be/src/rpc/thrift-util.cc
index 55fbb43b6..271f3e84a 100644
--- a/be/src/rpc/thrift-util.cc
+++ b/be/src/rpc/thrift-util.cc
@@ -17,6 +17,7 @@
 
 #include "rpc/thrift-util.h"
 
+#include <gtest/gtest.h>
 #include <thrift/config.h>
 
 #include "kudu/security/security_flags.h"
@@ -44,6 +45,7 @@
 #pragma clang diagnostic push
 #pragma clang diagnostic ignored "-Wstring-plus-int"
 #include <gutil/strings/substitute.h>
+#include <thrift/TConfiguration.h>
 #include <thrift/Thrift.h>
 #include <thrift/transport/TSocket.h>
 #include <thrift/transport/TServerSocket.h>
@@ -54,6 +56,11 @@
 
 #include "common/names.h"
 
+DEFINE_int32(thrift_rpc_max_message_size, (1024 * 1024 * 1024),
+    "The maximum size of a message that any RPC that the server will accept. "
+    "Default to 1GB. Setting 0 or negative value will use the default defined in the "
+    "Thrift. The upper limit is 2147483647 bytes.");
+
 using namespace apache::thrift;
 using namespace apache::thrift::transport;
 using namespace apache::thrift::server;
@@ -278,4 +285,18 @@ bool IsConnResetTException(const TTransportException& e) {
              strstr(e.what(), "SSL_read: Connection reset by peer") != nullptr);
 }
 
+shared_ptr<TConfiguration> DefaultTConfiguration() {
+  return make_shared<TConfiguration>(FLAGS_thrift_rpc_max_message_size <= 0 ?
+          ThriftDefaultMaxMessageSize() :
+          FLAGS_thrift_rpc_max_message_size);
+}
+
+void AssignDefaultTConfiguration(TTransport* transport) {
+  // TODO: Find way to assign TConfiguration through TTransportFactory instead.
+  transport->setConfiguration(DefaultTConfiguration());
+  transport->updateKnownMessageSize(-1);
+  EXPECT_NO_THROW(transport->checkReadBytesAvailable(
+      FLAGS_thrift_rpc_max_message_size <= 0 ? ThriftDefaultMaxMessageSize() :
+                                               FLAGS_thrift_rpc_max_message_size));
+}
 }
diff --git a/be/src/rpc/thrift-util.h b/be/src/rpc/thrift-util.h
index 99e760e86..9cce6eb94 100644
--- a/be/src/rpc/thrift-util.h
+++ b/be/src/rpc/thrift-util.h
@@ -24,6 +24,7 @@
 #include <sstream>
 #include <vector>
 #include <thrift/TApplicationException.h>
+#include <thrift/TConfiguration.h>
 #include <thrift/protocol/TDebugProtocol.h>
 #include <thrift/transport/TBufferTransports.h>
 #include <thrift/transport/TSSLSocket.h>
@@ -168,6 +169,16 @@ bool IsPeekTimeoutTException(const apache::thrift::transport::TTransportExceptio
 /// Returns true if the exception indicates the other end of the TCP socket was closed.
 bool IsConnResetTException(const apache::thrift::transport::TTransportException& e);
 
+inline int ThriftDefaultMaxMessageSize() {
+  return apache::thrift::TConfiguration::DEFAULT_MAX_MESSAGE_SIZE;
+}
+
+/// Return the default Thrift's TConfiguration based on given backend config flags.
+std::shared_ptr<apache::thrift::TConfiguration> DefaultTConfiguration();
+
+/// Assign given TTransport with the default TConfiguration and update the known message
+/// size accordingly.
+void AssignDefaultTConfiguration(apache::thrift::transport::TTransport* transport);
 }
 
 #endif
diff --git a/bin/rat_exclude_files.txt b/bin/rat_exclude_files.txt
index 7aa2c3f66..f0d97e80e 100644
--- a/bin/rat_exclude_files.txt
+++ b/bin/rat_exclude_files.txt
@@ -104,6 +104,7 @@ README*.md
 */README.dox
 */README.txt
 testdata/bin/README-BENCHMARK-TEST-GENERATION
+testdata/scale_test_metadata/README.md
 tests/comparison/ORACLE.txt
 bin/distcc/README.md
 tests/comparison/POSTGRES.txt
diff --git a/testdata/scale_test_metadata/README.md b/testdata/scale_test_metadata/README.md
new file mode 100644
index 000000000..70eea8c3a
--- /dev/null
+++ b/testdata/scale_test_metadata/README.md
@@ -0,0 +1,92 @@
+# Scale Test Metadata
+
+This README.md explain how to setup 1k_col_tbl table, a wide table with 1000+ columns,
+long partition key, and huge partiton count. This table is intended to scale test metadata
+operation limit against such table. This experiment/test is only documented here because
+the time to load data and execute such metadata operation query can be prohibitively long
+if written as a custom_cluster test run on single machine. This doc will use IMPALA-11669
+as a case study.
+
+## IMPALA-11669: Make Thrift max message size configuration
+
+With the upgrade to Thrift 0.16, Thrift now has a protection against malicious message in
+the form of a maximum size for messages. This is currently set to 100MB by default. Impala
+should add the ability to override this default value. In particular, it seems like
+communication between coordinators and the catalogd may need a larger value.
+
+To test this, we will setup 1k_col_tbl with 150k partitons and run a metadata query to
+test that coordinator-to-catalogd RPC works well. The steps are follow:
+
+1. Run create-wide-table.sql with impala-shell to create 1k_col_tbl table.
+   ```
+   impala-shell.sh -f create-wide-table.sql
+   ```
+
+2. Populate 1k_col_tbl with 150k partitons by running load-1k_col_tbl.sh. HDFS must be
+   running.
+   ```
+   ./load-1k_col_tbl.sh
+   ```
+
+3. With impala-shell, recover partition of table 1k_col_tbl.
+   ```
+   ALTER TABLE 1k_col_tbl RECOVER PARTITIONS;
+   ```
+   Run it multiple times if impalad/catalogd hits OOM until all partitions registered with
+   HMS.
+
+4. Restart impala cluster with `--thrift_rpc_max_message_size=0` (will set it to 100MB,
+   the default max message size from Thrift).
+   ```
+   # kill cluster
+   ./bin/start-impala-cluster.py --kill
+
+   # start cluster
+   ./bin/start-impala-cluster.py -s 1 \
+     --state_store_args="--thrift_rpc_max_message_size=0" \
+     --impalad_args="--thrift_rpc_max_message_size=0 --use_local_catalog=true" \
+     --catalogd_args="--catalog_topic_mode=minimal"
+
+   # Restart catalogd with additional args and jvm args
+   bin/start-impala-cluster.py -s 1 --restart_catalogd_only --jvm_args=-Xmx12g \
+   --catalogd_args=" --catalog_topic_mode=minimal --thrift_rpc_max_message_size=0 --warn_catalog_response_size_mb=1"
+   ```
+
+5. Run the following EXPLAIN query with impala-shell.
+   ```
+   impala-shell.sh -q 'EXPLAIN SELECT id FROM 1k_col_tbl'
+   ```
+
+   This will fail with "MaxMessageSize reached".
+   ```
+   Starting Impala Shell with no authentication using Python 2.7.16
+   Warning: live_progress only applies to interactive shell sessions, and is being skipped for now.
+   Opened TCP connection to localhost:21050
+   Connected to localhost:21050
+   Server version: impalad version 4.2.0-SNAPSHOT DEBUG (build e081348e02848f3e7dd904f44e43b9da63a93594)
+   Query: EXPLAIN SELECT id FROM 1k_col_tbl
+   ERROR: LocalCatalogException: Could not load partition names for table default.1k_col_tbl
+   CAUSED BY: TException: TGetPartialCatalogObjectResponse(status:TStatus(status_code:GENERAL, error_msgs:[couldn't deserialize thrift msg:
+   MaxMessageSize reached]), lookup_status:OK, object_version_number:1649)
+   ```
+
+6. Restart impala-shell again, but without passing `--thrift_rpc_max_message_size` argument.
+   ```
+   # kill cluster
+   ./bin/start-impala-cluster.py --kill
+
+   # start cluster
+   ./bin/start-impala-cluster.py -s 1 \
+     --impalad_args="--use_local_catalog=true" \
+     --catalogd_args="--catalog_topic_mode=minimal"
+
+   # Restart catalogd with additional args and jvm args
+   bin/start-impala-cluster.py -s 1 --restart_catalogd_only --jvm_args=-Xmx12g \
+   --catalogd_args="--catalog_topic_mode=minimal --warn_catalog_response_size_mb=1"
+   ```
+
+7. Run the same EXPLAIN query again. This should run successfully, because the default
+   `thrift_rpc_max_message_size` is 1GB.
+   ```
+   impala-shell.sh -q 'EXPLAIN SELECT id FROM 1k_col_tbl'
+   ```
diff --git a/testdata/scale_test_metadata/create-wide-table.sql b/testdata/scale_test_metadata/create-wide-table.sql
new file mode 100644
index 000000000..87a1e673d
--- /dev/null
+++ b/testdata/scale_test_metadata/create-wide-table.sql
@@ -0,0 +1,1012 @@
+drop table if exists 1k_col_tbl;
+create external table 1k_col_tbl (
+id int,
+very_very_very_very_very_long_string_column_name1 string,
+very_very_very_very_very_long_string_column_name2 string,
+very_very_very_very_very_long_string_column_name3 string,
+very_very_very_very_very_long_string_column_name4 string,
+very_very_very_very_very_long_string_column_name5 string,
+very_very_very_very_very_long_string_column_name6 string,
+very_very_very_very_very_long_string_column_name7 string,
+very_very_very_very_very_long_string_column_name8 string,
+very_very_very_very_very_long_string_column_name9 string,
+very_very_very_very_very_long_string_column_name10 string,
+very_very_very_very_very_long_string_column_name11 string,
+very_very_very_very_very_long_string_column_name12 string,
+very_very_very_very_very_long_string_column_name13 string,
+very_very_very_very_very_long_string_column_name14 string,
+very_very_very_very_very_long_string_column_name15 string,
+very_very_very_very_very_long_string_column_name16 string,
+very_very_very_very_very_long_string_column_name17 string,
+very_very_very_very_very_long_string_column_name18 string,
+very_very_very_very_very_long_string_column_name19 string,
+very_very_very_very_very_long_string_column_name20 string,
+very_very_very_very_very_long_string_column_name21 string,
+very_very_very_very_very_long_string_column_name22 string,
+very_very_very_very_very_long_string_column_name23 string,
+very_very_very_very_very_long_string_column_name24 string,
+very_very_very_very_very_long_string_column_name25 string,
+very_very_very_very_very_long_string_column_name26 string,
+very_very_very_very_very_long_string_column_name27 string,
+very_very_very_very_very_long_string_column_name28 string,
+very_very_very_very_very_long_string_column_name29 string,
+very_very_very_very_very_long_string_column_name30 string,
+very_very_very_very_very_long_string_column_name31 string,
+very_very_very_very_very_long_string_column_name32 string,
+very_very_very_very_very_long_string_column_name33 string,
+very_very_very_very_very_long_string_column_name34 string,
+very_very_very_very_very_long_string_column_name35 string,
+very_very_very_very_very_long_string_column_name36 string,
+very_very_very_very_very_long_string_column_name37 string,
+very_very_very_very_very_long_string_column_name38 string,
+very_very_very_very_very_long_string_column_name39 string,
+very_very_very_very_very_long_string_column_name40 string,
+very_very_very_very_very_long_string_column_name41 string,
+very_very_very_very_very_long_string_column_name42 string,
+very_very_very_very_very_long_string_column_name43 string,
+very_very_very_very_very_long_string_column_name44 string,
+very_very_very_very_very_long_string_column_name45 string,
+very_very_very_very_very_long_string_column_name46 string,
+very_very_very_very_very_long_string_column_name47 string,
+very_very_very_very_very_long_string_column_name48 string,
+very_very_very_very_very_long_string_column_name49 string,
+very_very_very_very_very_long_string_column_name50 string,
+very_very_very_very_very_long_string_column_name51 string,
+very_very_very_very_very_long_string_column_name52 string,
+very_very_very_very_very_long_string_column_name53 string,
+very_very_very_very_very_long_string_column_name54 string,
+very_very_very_very_very_long_string_column_name55 string,
+very_very_very_very_very_long_string_column_name56 string,
+very_very_very_very_very_long_string_column_name57 string,
+very_very_very_very_very_long_string_column_name58 string,
+very_very_very_very_very_long_string_column_name59 string,
+very_very_very_very_very_long_string_column_name60 string,
+very_very_very_very_very_long_string_column_name61 string,
+very_very_very_very_very_long_string_column_name62 string,
+very_very_very_very_very_long_string_column_name63 string,
+very_very_very_very_very_long_string_column_name64 string,
+very_very_very_very_very_long_string_column_name65 string,
+very_very_very_very_very_long_string_column_name66 string,
+very_very_very_very_very_long_string_column_name67 string,
+very_very_very_very_very_long_string_column_name68 string,
+very_very_very_very_very_long_string_column_name69 string,
+very_very_very_very_very_long_string_column_name70 string,
+very_very_very_very_very_long_string_column_name71 string,
+very_very_very_very_very_long_string_column_name72 string,
+very_very_very_very_very_long_string_column_name73 string,
+very_very_very_very_very_long_string_column_name74 string,
+very_very_very_very_very_long_string_column_name75 string,
+very_very_very_very_very_long_string_column_name76 string,
+very_very_very_very_very_long_string_column_name77 string,
+very_very_very_very_very_long_string_column_name78 string,
+very_very_very_very_very_long_string_column_name79 string,
+very_very_very_very_very_long_string_column_name80 string,
+very_very_very_very_very_long_string_column_name81 string,
+very_very_very_very_very_long_string_column_name82 string,
+very_very_very_very_very_long_string_column_name83 string,
+very_very_very_very_very_long_string_column_name84 string,
+very_very_very_very_very_long_string_column_name85 string,
+very_very_very_very_very_long_string_column_name86 string,
+very_very_very_very_very_long_string_column_name87 string,
+very_very_very_very_very_long_string_column_name88 string,
+very_very_very_very_very_long_string_column_name89 string,
+very_very_very_very_very_long_string_column_name90 string,
+very_very_very_very_very_long_string_column_name91 string,
+very_very_very_very_very_long_string_column_name92 string,
+very_very_very_very_very_long_string_column_name93 string,
+very_very_very_very_very_long_string_column_name94 string,
+very_very_very_very_very_long_string_column_name95 string,
+very_very_very_very_very_long_string_column_name96 string,
+very_very_very_very_very_long_string_column_name97 string,
+very_very_very_very_very_long_string_column_name98 string,
+very_very_very_very_very_long_string_column_name99 string,
+very_very_very_very_very_long_string_column_name100 string,
+very_very_very_very_very_long_string_column_name101 string,
+very_very_very_very_very_long_string_column_name102 string,
+very_very_very_very_very_long_string_column_name103 string,
+very_very_very_very_very_long_string_column_name104 string,
+very_very_very_very_very_long_string_column_name105 string,
+very_very_very_very_very_long_string_column_name106 string,
+very_very_very_very_very_long_string_column_name107 string,
+very_very_very_very_very_long_string_column_name108 string,
+very_very_very_very_very_long_string_column_name109 string,
+very_very_very_very_very_long_string_column_name110 string,
+very_very_very_very_very_long_string_column_name111 string,
+very_very_very_very_very_long_string_column_name112 string,
+very_very_very_very_very_long_string_column_name113 string,
+very_very_very_very_very_long_string_column_name114 string,
+very_very_very_very_very_long_string_column_name115 string,
+very_very_very_very_very_long_string_column_name116 string,
+very_very_very_very_very_long_string_column_name117 string,
+very_very_very_very_very_long_string_column_name118 string,
+very_very_very_very_very_long_string_column_name119 string,
+very_very_very_very_very_long_string_column_name120 string,
+very_very_very_very_very_long_string_column_name121 string,
+very_very_very_very_very_long_string_column_name122 string,
+very_very_very_very_very_long_string_column_name123 string,
+very_very_very_very_very_long_string_column_name124 string,
+very_very_very_very_very_long_string_column_name125 string,
+very_very_very_very_very_long_string_column_name126 string,
+very_very_very_very_very_long_string_column_name127 string,
+very_very_very_very_very_long_string_column_name128 string,
+very_very_very_very_very_long_string_column_name129 string,
+very_very_very_very_very_long_string_column_name130 string,
+very_very_very_very_very_long_string_column_name131 string,
+very_very_very_very_very_long_string_column_name132 string,
+very_very_very_very_very_long_string_column_name133 string,
+very_very_very_very_very_long_string_column_name134 string,
+very_very_very_very_very_long_string_column_name135 string,
+very_very_very_very_very_long_string_column_name136 string,
+very_very_very_very_very_long_string_column_name137 string,
+very_very_very_very_very_long_string_column_name138 string,
+very_very_very_very_very_long_string_column_name139 string,
+very_very_very_very_very_long_string_column_name140 string,
+very_very_very_very_very_long_string_column_name141 string,
+very_very_very_very_very_long_string_column_name142 string,
+very_very_very_very_very_long_string_column_name143 string,
+very_very_very_very_very_long_string_column_name144 string,
+very_very_very_very_very_long_string_column_name145 string,
+very_very_very_very_very_long_string_column_name146 string,
+very_very_very_very_very_long_string_column_name147 string,
+very_very_very_very_very_long_string_column_name148 string,
+very_very_very_very_very_long_string_column_name149 string,
+very_very_very_very_very_long_string_column_name150 string,
+very_very_very_very_very_long_string_column_name151 string,
+very_very_very_very_very_long_string_column_name152 string,
+very_very_very_very_very_long_string_column_name153 string,
+very_very_very_very_very_long_string_column_name154 string,
+very_very_very_very_very_long_string_column_name155 string,
+very_very_very_very_very_long_string_column_name156 string,
+very_very_very_very_very_long_string_column_name157 string,
+very_very_very_very_very_long_string_column_name158 string,
+very_very_very_very_very_long_string_column_name159 string,
+very_very_very_very_very_long_string_column_name160 string,
+very_very_very_very_very_long_string_column_name161 string,
+very_very_very_very_very_long_string_column_name162 string,
+very_very_very_very_very_long_string_column_name163 string,
+very_very_very_very_very_long_string_column_name164 string,
+very_very_very_very_very_long_string_column_name165 string,
+very_very_very_very_very_long_string_column_name166 string,
+very_very_very_very_very_long_string_column_name167 string,
+very_very_very_very_very_long_string_column_name168 string,
+very_very_very_very_very_long_string_column_name169 string,
+very_very_very_very_very_long_string_column_name170 string,
+very_very_very_very_very_long_string_column_name171 string,
+very_very_very_very_very_long_string_column_name172 string,
+very_very_very_very_very_long_string_column_name173 string,
+very_very_very_very_very_long_string_column_name174 string,
+very_very_very_very_very_long_string_column_name175 string,
+very_very_very_very_very_long_string_column_name176 string,
+very_very_very_very_very_long_string_column_name177 string,
+very_very_very_very_very_long_string_column_name178 string,
+very_very_very_very_very_long_string_column_name179 string,
+very_very_very_very_very_long_string_column_name180 string,
+very_very_very_very_very_long_string_column_name181 string,
+very_very_very_very_very_long_string_column_name182 string,
+very_very_very_very_very_long_string_column_name183 string,
+very_very_very_very_very_long_string_column_name184 string,
+very_very_very_very_very_long_string_column_name185 string,
+very_very_very_very_very_long_string_column_name186 string,
+very_very_very_very_very_long_string_column_name187 string,
+very_very_very_very_very_long_string_column_name188 string,
+very_very_very_very_very_long_string_column_name189 string,
+very_very_very_very_very_long_string_column_name190 string,
+very_very_very_very_very_long_string_column_name191 string,
+very_very_very_very_very_long_string_column_name192 string,
+very_very_very_very_very_long_string_column_name193 string,
+very_very_very_very_very_long_string_column_name194 string,
+very_very_very_very_very_long_string_column_name195 string,
+very_very_very_very_very_long_string_column_name196 string,
+very_very_very_very_very_long_string_column_name197 string,
+very_very_very_very_very_long_string_column_name198 string,
+very_very_very_very_very_long_string_column_name199 string,
+very_very_very_very_very_long_string_column_name200 string,
+very_very_very_very_very_long_string_column_name201 string,
+very_very_very_very_very_long_string_column_name202 string,
+very_very_very_very_very_long_string_column_name203 string,
+very_very_very_very_very_long_string_column_name204 string,
+very_very_very_very_very_long_string_column_name205 string,
+very_very_very_very_very_long_string_column_name206 string,
+very_very_very_very_very_long_string_column_name207 string,
+very_very_very_very_very_long_string_column_name208 string,
+very_very_very_very_very_long_string_column_name209 string,
+very_very_very_very_very_long_string_column_name210 string,
+very_very_very_very_very_long_string_column_name211 string,
+very_very_very_very_very_long_string_column_name212 string,
+very_very_very_very_very_long_string_column_name213 string,
+very_very_very_very_very_long_string_column_name214 string,
+very_very_very_very_very_long_string_column_name215 string,
+very_very_very_very_very_long_string_column_name216 string,
+very_very_very_very_very_long_string_column_name217 string,
+very_very_very_very_very_long_string_column_name218 string,
+very_very_very_very_very_long_string_column_name219 string,
+very_very_very_very_very_long_string_column_name220 string,
+very_very_very_very_very_long_string_column_name221 string,
+very_very_very_very_very_long_string_column_name222 string,
+very_very_very_very_very_long_string_column_name223 string,
+very_very_very_very_very_long_string_column_name224 string,
+very_very_very_very_very_long_string_column_name225 string,
+very_very_very_very_very_long_string_column_name226 string,
+very_very_very_very_very_long_string_column_name227 string,
+very_very_very_very_very_long_string_column_name228 string,
+very_very_very_very_very_long_string_column_name229 string,
+very_very_very_very_very_long_string_column_name230 string,
+very_very_very_very_very_long_string_column_name231 string,
+very_very_very_very_very_long_string_column_name232 string,
+very_very_very_very_very_long_string_column_name233 string,
+very_very_very_very_very_long_string_column_name234 string,
+very_very_very_very_very_long_string_column_name235 string,
+very_very_very_very_very_long_string_column_name236 string,
+very_very_very_very_very_long_string_column_name237 string,
+very_very_very_very_very_long_string_column_name238 string,
+very_very_very_very_very_long_string_column_name239 string,
+very_very_very_very_very_long_string_column_name240 string,
+very_very_very_very_very_long_string_column_name241 string,
+very_very_very_very_very_long_string_column_name242 string,
+very_very_very_very_very_long_string_column_name243 string,
+very_very_very_very_very_long_string_column_name244 string,
+very_very_very_very_very_long_string_column_name245 string,
+very_very_very_very_very_long_string_column_name246 string,
+very_very_very_very_very_long_string_column_name247 string,
+very_very_very_very_very_long_string_column_name248 string,
+very_very_very_very_very_long_string_column_name249 string,
+very_very_very_very_very_long_string_column_name250 string,
+very_very_very_very_very_long_string_column_name251 string,
+very_very_very_very_very_long_string_column_name252 string,
+very_very_very_very_very_long_string_column_name253 string,
+very_very_very_very_very_long_string_column_name254 string,
+very_very_very_very_very_long_string_column_name255 string,
+very_very_very_very_very_long_string_column_name256 string,
+very_very_very_very_very_long_string_column_name257 string,
+very_very_very_very_very_long_string_column_name258 string,
+very_very_very_very_very_long_string_column_name259 string,
+very_very_very_very_very_long_string_column_name260 string,
+very_very_very_very_very_long_string_column_name261 string,
+very_very_very_very_very_long_string_column_name262 string,
+very_very_very_very_very_long_string_column_name263 string,
+very_very_very_very_very_long_string_column_name264 string,
+very_very_very_very_very_long_string_column_name265 string,
+very_very_very_very_very_long_string_column_name266 string,
+very_very_very_very_very_long_string_column_name267 string,
+very_very_very_very_very_long_string_column_name268 string,
+very_very_very_very_very_long_string_column_name269 string,
+very_very_very_very_very_long_string_column_name270 string,
+very_very_very_very_very_long_string_column_name271 string,
+very_very_very_very_very_long_string_column_name272 string,
+very_very_very_very_very_long_string_column_name273 string,
+very_very_very_very_very_long_string_column_name274 string,
+very_very_very_very_very_long_string_column_name275 string,
+very_very_very_very_very_long_string_column_name276 string,
+very_very_very_very_very_long_string_column_name277 string,
+very_very_very_very_very_long_string_column_name278 string,
+very_very_very_very_very_long_string_column_name279 string,
+very_very_very_very_very_long_string_column_name280 string,
+very_very_very_very_very_long_string_column_name281 string,
+very_very_very_very_very_long_string_column_name282 string,
+very_very_very_very_very_long_string_column_name283 string,
+very_very_very_very_very_long_string_column_name284 string,
+very_very_very_very_very_long_string_column_name285 string,
+very_very_very_very_very_long_string_column_name286 string,
+very_very_very_very_very_long_string_column_name287 string,
+very_very_very_very_very_long_string_column_name288 string,
+very_very_very_very_very_long_string_column_name289 string,
+very_very_very_very_very_long_string_column_name290 string,
+very_very_very_very_very_long_string_column_name291 string,
+very_very_very_very_very_long_string_column_name292 string,
+very_very_very_very_very_long_string_column_name293 string,
+very_very_very_very_very_long_string_column_name294 string,
+very_very_very_very_very_long_string_column_name295 string,
+very_very_very_very_very_long_string_column_name296 string,
+very_very_very_very_very_long_string_column_name297 string,
+very_very_very_very_very_long_string_column_name298 string,
+very_very_very_very_very_long_string_column_name299 string,
+very_very_very_very_very_long_string_column_name300 string,
+very_very_very_very_very_long_string_column_name301 string,
+very_very_very_very_very_long_string_column_name302 string,
+very_very_very_very_very_long_string_column_name303 string,
+very_very_very_very_very_long_string_column_name304 string,
+very_very_very_very_very_long_string_column_name305 string,
+very_very_very_very_very_long_string_column_name306 string,
+very_very_very_very_very_long_string_column_name307 string,
+very_very_very_very_very_long_string_column_name308 string,
+very_very_very_very_very_long_string_column_name309 string,
+very_very_very_very_very_long_string_column_name310 string,
+very_very_very_very_very_long_string_column_name311 string,
+very_very_very_very_very_long_string_column_name312 string,
+very_very_very_very_very_long_string_column_name313 string,
+very_very_very_very_very_long_string_column_name314 string,
+very_very_very_very_very_long_string_column_name315 string,
+very_very_very_very_very_long_string_column_name316 string,
+very_very_very_very_very_long_string_column_name317 string,
+very_very_very_very_very_long_string_column_name318 string,
+very_very_very_very_very_long_string_column_name319 string,
+very_very_very_very_very_long_string_column_name320 string,
+very_very_very_very_very_long_string_column_name321 string,
+very_very_very_very_very_long_string_column_name322 string,
+very_very_very_very_very_long_string_column_name323 string,
+very_very_very_very_very_long_string_column_name324 string,
+very_very_very_very_very_long_string_column_name325 string,
+very_very_very_very_very_long_string_column_name326 string,
+very_very_very_very_very_long_string_column_name327 string,
+very_very_very_very_very_long_string_column_name328 string,
+very_very_very_very_very_long_string_column_name329 string,
+very_very_very_very_very_long_string_column_name330 string,
+very_very_very_very_very_long_string_column_name331 string,
+very_very_very_very_very_long_string_column_name332 string,
+very_very_very_very_very_long_string_column_name333 string,
+very_very_very_very_very_long_string_column_name334 string,
+very_very_very_very_very_long_string_column_name335 string,
+very_very_very_very_very_long_string_column_name336 string,
+very_very_very_very_very_long_string_column_name337 string,
+very_very_very_very_very_long_string_column_name338 string,
+very_very_very_very_very_long_string_column_name339 string,
+very_very_very_very_very_long_string_column_name340 string,
+very_very_very_very_very_long_string_column_name341 string,
+very_very_very_very_very_long_string_column_name342 string,
+very_very_very_very_very_long_string_column_name343 string,
+very_very_very_very_very_long_string_column_name344 string,
+very_very_very_very_very_long_string_column_name345 string,
+very_very_very_very_very_long_string_column_name346 string,
+very_very_very_very_very_long_string_column_name347 string,
+very_very_very_very_very_long_string_column_name348 string,
+very_very_very_very_very_long_string_column_name349 string,
+very_very_very_very_very_long_string_column_name350 string,
+very_very_very_very_very_long_string_column_name351 string,
+very_very_very_very_very_long_string_column_name352 string,
+very_very_very_very_very_long_string_column_name353 string,
+very_very_very_very_very_long_string_column_name354 string,
+very_very_very_very_very_long_string_column_name355 string,
+very_very_very_very_very_long_string_column_name356 string,
+very_very_very_very_very_long_string_column_name357 string,
+very_very_very_very_very_long_string_column_name358 string,
+very_very_very_very_very_long_string_column_name359 string,
+very_very_very_very_very_long_string_column_name360 string,
+very_very_very_very_very_long_string_column_name361 string,
+very_very_very_very_very_long_string_column_name362 string,
+very_very_very_very_very_long_string_column_name363 string,
+very_very_very_very_very_long_string_column_name364 string,
+very_very_very_very_very_long_string_column_name365 string,
+very_very_very_very_very_long_string_column_name366 string,
+very_very_very_very_very_long_string_column_name367 string,
+very_very_very_very_very_long_string_column_name368 string,
+very_very_very_very_very_long_string_column_name369 string,
+very_very_very_very_very_long_string_column_name370 string,
+very_very_very_very_very_long_string_column_name371 string,
+very_very_very_very_very_long_string_column_name372 string,
+very_very_very_very_very_long_string_column_name373 string,
+very_very_very_very_very_long_string_column_name374 string,
+very_very_very_very_very_long_string_column_name375 string,
+very_very_very_very_very_long_string_column_name376 string,
+very_very_very_very_very_long_string_column_name377 string,
+very_very_very_very_very_long_string_column_name378 string,
+very_very_very_very_very_long_string_column_name379 string,
+very_very_very_very_very_long_string_column_name380 string,
+very_very_very_very_very_long_string_column_name381 string,
+very_very_very_very_very_long_string_column_name382 string,
+very_very_very_very_very_long_string_column_name383 string,
+very_very_very_very_very_long_string_column_name384 string,
+very_very_very_very_very_long_string_column_name385 string,
+very_very_very_very_very_long_string_column_name386 string,
+very_very_very_very_very_long_string_column_name387 string,
+very_very_very_very_very_long_string_column_name388 string,
+very_very_very_very_very_long_string_column_name389 string,
+very_very_very_very_very_long_string_column_name390 string,
+very_very_very_very_very_long_string_column_name391 string,
+very_very_very_very_very_long_string_column_name392 string,
+very_very_very_very_very_long_string_column_name393 string,
+very_very_very_very_very_long_string_column_name394 string,
+very_very_very_very_very_long_string_column_name395 string,
+very_very_very_very_very_long_string_column_name396 string,
+very_very_very_very_very_long_string_column_name397 string,
+very_very_very_very_very_long_string_column_name398 string,
+very_very_very_very_very_long_string_column_name399 string,
+very_very_very_very_very_long_string_column_name400 string,
+very_very_very_very_very_long_string_column_name401 string,
+very_very_very_very_very_long_string_column_name402 string,
+very_very_very_very_very_long_string_column_name403 string,
+very_very_very_very_very_long_string_column_name404 string,
+very_very_very_very_very_long_string_column_name405 string,
+very_very_very_very_very_long_string_column_name406 string,
+very_very_very_very_very_long_string_column_name407 string,
+very_very_very_very_very_long_string_column_name408 string,
+very_very_very_very_very_long_string_column_name409 string,
+very_very_very_very_very_long_string_column_name410 string,
+very_very_very_very_very_long_string_column_name411 string,
+very_very_very_very_very_long_string_column_name412 string,
+very_very_very_very_very_long_string_column_name413 string,
+very_very_very_very_very_long_string_column_name414 string,
+very_very_very_very_very_long_string_column_name415 string,
+very_very_very_very_very_long_string_column_name416 string,
+very_very_very_very_very_long_string_column_name417 string,
+very_very_very_very_very_long_string_column_name418 string,
+very_very_very_very_very_long_string_column_name419 string,
+very_very_very_very_very_long_string_column_name420 string,
+very_very_very_very_very_long_string_column_name421 string,
+very_very_very_very_very_long_string_column_name422 string,
+very_very_very_very_very_long_string_column_name423 string,
+very_very_very_very_very_long_string_column_name424 string,
+very_very_very_very_very_long_string_column_name425 string,
+very_very_very_very_very_long_string_column_name426 string,
+very_very_very_very_very_long_string_column_name427 string,
+very_very_very_very_very_long_string_column_name428 string,
+very_very_very_very_very_long_string_column_name429 string,
+very_very_very_very_very_long_string_column_name430 string,
+very_very_very_very_very_long_string_column_name431 string,
+very_very_very_very_very_long_string_column_name432 string,
+very_very_very_very_very_long_string_column_name433 string,
+very_very_very_very_very_long_string_column_name434 string,
+very_very_very_very_very_long_string_column_name435 string,
+very_very_very_very_very_long_string_column_name436 string,
+very_very_very_very_very_long_string_column_name437 string,
+very_very_very_very_very_long_string_column_name438 string,
+very_very_very_very_very_long_string_column_name439 string,
+very_very_very_very_very_long_string_column_name440 string,
+very_very_very_very_very_long_string_column_name441 string,
+very_very_very_very_very_long_string_column_name442 string,
+very_very_very_very_very_long_string_column_name443 string,
+very_very_very_very_very_long_string_column_name444 string,
+very_very_very_very_very_long_string_column_name445 string,
+very_very_very_very_very_long_string_column_name446 string,
+very_very_very_very_very_long_string_column_name447 string,
+very_very_very_very_very_long_string_column_name448 string,
+very_very_very_very_very_long_string_column_name449 string,
+very_very_very_very_very_long_string_column_name450 string,
+very_very_very_very_very_long_string_column_name451 string,
+very_very_very_very_very_long_string_column_name452 string,
+very_very_very_very_very_long_string_column_name453 string,
+very_very_very_very_very_long_string_column_name454 string,
+very_very_very_very_very_long_string_column_name455 string,
+very_very_very_very_very_long_string_column_name456 string,
+very_very_very_very_very_long_string_column_name457 string,
+very_very_very_very_very_long_string_column_name458 string,
+very_very_very_very_very_long_string_column_name459 string,
+very_very_very_very_very_long_string_column_name460 string,
+very_very_very_very_very_long_string_column_name461 string,
+very_very_very_very_very_long_string_column_name462 string,
+very_very_very_very_very_long_string_column_name463 string,
+very_very_very_very_very_long_string_column_name464 string,
+very_very_very_very_very_long_string_column_name465 string,
+very_very_very_very_very_long_string_column_name466 string,
+very_very_very_very_very_long_string_column_name467 string,
+very_very_very_very_very_long_string_column_name468 string,
+very_very_very_very_very_long_string_column_name469 string,
+very_very_very_very_very_long_string_column_name470 string,
+very_very_very_very_very_long_string_column_name471 string,
+very_very_very_very_very_long_string_column_name472 string,
+very_very_very_very_very_long_string_column_name473 string,
+very_very_very_very_very_long_string_column_name474 string,
+very_very_very_very_very_long_string_column_name475 string,
+very_very_very_very_very_long_string_column_name476 string,
+very_very_very_very_very_long_string_column_name477 string,
+very_very_very_very_very_long_string_column_name478 string,
+very_very_very_very_very_long_string_column_name479 string,
+very_very_very_very_very_long_string_column_name480 string,
+very_very_very_very_very_long_string_column_name481 string,
+very_very_very_very_very_long_string_column_name482 string,
+very_very_very_very_very_long_string_column_name483 string,
+very_very_very_very_very_long_string_column_name484 string,
+very_very_very_very_very_long_string_column_name485 string,
+very_very_very_very_very_long_string_column_name486 string,
+very_very_very_very_very_long_string_column_name487 string,
+very_very_very_very_very_long_string_column_name488 string,
+very_very_very_very_very_long_string_column_name489 string,
+very_very_very_very_very_long_string_column_name490 string,
+very_very_very_very_very_long_string_column_name491 string,
+very_very_very_very_very_long_string_column_name492 string,
+very_very_very_very_very_long_string_column_name493 string,
+very_very_very_very_very_long_string_column_name494 string,
+very_very_very_very_very_long_string_column_name495 string,
+very_very_very_very_very_long_string_column_name496 string,
+very_very_very_very_very_long_string_column_name497 string,
+very_very_very_very_very_long_string_column_name498 string,
+very_very_very_very_very_long_string_column_name499 string,
+very_very_very_very_very_long_string_column_name500 string,
+very_very_very_very_very_long_string_column_name501 string,
+very_very_very_very_very_long_string_column_name502 string,
+very_very_very_very_very_long_string_column_name503 string,
+very_very_very_very_very_long_string_column_name504 string,
+very_very_very_very_very_long_string_column_name505 string,
+very_very_very_very_very_long_string_column_name506 string,
+very_very_very_very_very_long_string_column_name507 string,
+very_very_very_very_very_long_string_column_name508 string,
+very_very_very_very_very_long_string_column_name509 string,
+very_very_very_very_very_long_string_column_name510 string,
+very_very_very_very_very_long_string_column_name511 string,
+very_very_very_very_very_long_string_column_name512 string,
+very_very_very_very_very_long_string_column_name513 string,
+very_very_very_very_very_long_string_column_name514 string,
+very_very_very_very_very_long_string_column_name515 string,
+very_very_very_very_very_long_string_column_name516 string,
+very_very_very_very_very_long_string_column_name517 string,
+very_very_very_very_very_long_string_column_name518 string,
+very_very_very_very_very_long_string_column_name519 string,
+very_very_very_very_very_long_string_column_name520 string,
+very_very_very_very_very_long_string_column_name521 string,
+very_very_very_very_very_long_string_column_name522 string,
+very_very_very_very_very_long_string_column_name523 string,
+very_very_very_very_very_long_string_column_name524 string,
+very_very_very_very_very_long_string_column_name525 string,
+very_very_very_very_very_long_string_column_name526 string,
+very_very_very_very_very_long_string_column_name527 string,
+very_very_very_very_very_long_string_column_name528 string,
+very_very_very_very_very_long_string_column_name529 string,
+very_very_very_very_very_long_string_column_name530 string,
+very_very_very_very_very_long_string_column_name531 string,
+very_very_very_very_very_long_string_column_name532 string,
+very_very_very_very_very_long_string_column_name533 string,
+very_very_very_very_very_long_string_column_name534 string,
+very_very_very_very_very_long_string_column_name535 string,
+very_very_very_very_very_long_string_column_name536 string,
+very_very_very_very_very_long_string_column_name537 string,
+very_very_very_very_very_long_string_column_name538 string,
+very_very_very_very_very_long_string_column_name539 string,
+very_very_very_very_very_long_string_column_name540 string,
+very_very_very_very_very_long_string_column_name541 string,
+very_very_very_very_very_long_string_column_name542 string,
+very_very_very_very_very_long_string_column_name543 string,
+very_very_very_very_very_long_string_column_name544 string,
+very_very_very_very_very_long_string_column_name545 string,
+very_very_very_very_very_long_string_column_name546 string,
+very_very_very_very_very_long_string_column_name547 string,
+very_very_very_very_very_long_string_column_name548 string,
+very_very_very_very_very_long_string_column_name549 string,
+very_very_very_very_very_long_string_column_name550 string,
+very_very_very_very_very_long_string_column_name551 string,
+very_very_very_very_very_long_string_column_name552 string,
+very_very_very_very_very_long_string_column_name553 string,
+very_very_very_very_very_long_string_column_name554 string,
+very_very_very_very_very_long_string_column_name555 string,
+very_very_very_very_very_long_string_column_name556 string,
+very_very_very_very_very_long_string_column_name557 string,
+very_very_very_very_very_long_string_column_name558 string,
+very_very_very_very_very_long_string_column_name559 string,
+very_very_very_very_very_long_string_column_name560 string,
+very_very_very_very_very_long_string_column_name561 string,
+very_very_very_very_very_long_string_column_name562 string,
+very_very_very_very_very_long_string_column_name563 string,
+very_very_very_very_very_long_string_column_name564 string,
+very_very_very_very_very_long_string_column_name565 string,
+very_very_very_very_very_long_string_column_name566 string,
+very_very_very_very_very_long_string_column_name567 string,
+very_very_very_very_very_long_string_column_name568 string,
+very_very_very_very_very_long_string_column_name569 string,
+very_very_very_very_very_long_string_column_name570 string,
+very_very_very_very_very_long_string_column_name571 string,
+very_very_very_very_very_long_string_column_name572 string,
+very_very_very_very_very_long_string_column_name573 string,
+very_very_very_very_very_long_string_column_name574 string,
+very_very_very_very_very_long_string_column_name575 string,
+very_very_very_very_very_long_string_column_name576 string,
+very_very_very_very_very_long_string_column_name577 string,
+very_very_very_very_very_long_string_column_name578 string,
+very_very_very_very_very_long_string_column_name579 string,
+very_very_very_very_very_long_string_column_name580 string,
+very_very_very_very_very_long_string_column_name581 string,
+very_very_very_very_very_long_string_column_name582 string,
+very_very_very_very_very_long_string_column_name583 string,
+very_very_very_very_very_long_string_column_name584 string,
+very_very_very_very_very_long_string_column_name585 string,
+very_very_very_very_very_long_string_column_name586 string,
+very_very_very_very_very_long_string_column_name587 string,
+very_very_very_very_very_long_string_column_name588 string,
+very_very_very_very_very_long_string_column_name589 string,
+very_very_very_very_very_long_string_column_name590 string,
+very_very_very_very_very_long_string_column_name591 string,
+very_very_very_very_very_long_string_column_name592 string,
+very_very_very_very_very_long_string_column_name593 string,
+very_very_very_very_very_long_string_column_name594 string,
+very_very_very_very_very_long_string_column_name595 string,
+very_very_very_very_very_long_string_column_name596 string,
+very_very_very_very_very_long_string_column_name597 string,
+very_very_very_very_very_long_string_column_name598 string,
+very_very_very_very_very_long_string_column_name599 string,
+very_very_very_very_very_long_string_column_name600 string,
+very_very_very_very_very_long_string_column_name601 string,
+very_very_very_very_very_long_string_column_name602 string,
+very_very_very_very_very_long_string_column_name603 string,
+very_very_very_very_very_long_string_column_name604 string,
+very_very_very_very_very_long_string_column_name605 string,
+very_very_very_very_very_long_string_column_name606 string,
+very_very_very_very_very_long_string_column_name607 string,
+very_very_very_very_very_long_string_column_name608 string,
+very_very_very_very_very_long_string_column_name609 string,
+very_very_very_very_very_long_string_column_name610 string,
+very_very_very_very_very_long_string_column_name611 string,
+very_very_very_very_very_long_string_column_name612 string,
+very_very_very_very_very_long_string_column_name613 string,
+very_very_very_very_very_long_string_column_name614 string,
+very_very_very_very_very_long_string_column_name615 string,
+very_very_very_very_very_long_string_column_name616 string,
+very_very_very_very_very_long_string_column_name617 string,
+very_very_very_very_very_long_string_column_name618 string,
+very_very_very_very_very_long_string_column_name619 string,
+very_very_very_very_very_long_string_column_name620 string,
+very_very_very_very_very_long_string_column_name621 string,
+very_very_very_very_very_long_string_column_name622 string,
+very_very_very_very_very_long_string_column_name623 string,
+very_very_very_very_very_long_string_column_name624 string,
+very_very_very_very_very_long_string_column_name625 string,
+very_very_very_very_very_long_string_column_name626 string,
+very_very_very_very_very_long_string_column_name627 string,
+very_very_very_very_very_long_string_column_name628 string,
+very_very_very_very_very_long_string_column_name629 string,
+very_very_very_very_very_long_string_column_name630 string,
+very_very_very_very_very_long_string_column_name631 string,
+very_very_very_very_very_long_string_column_name632 string,
+very_very_very_very_very_long_string_column_name633 string,
+very_very_very_very_very_long_string_column_name634 string,
+very_very_very_very_very_long_string_column_name635 string,
+very_very_very_very_very_long_string_column_name636 string,
+very_very_very_very_very_long_string_column_name637 string,
+very_very_very_very_very_long_string_column_name638 string,
+very_very_very_very_very_long_string_column_name639 string,
+very_very_very_very_very_long_string_column_name640 string,
+very_very_very_very_very_long_string_column_name641 string,
+very_very_very_very_very_long_string_column_name642 string,
+very_very_very_very_very_long_string_column_name643 string,
+very_very_very_very_very_long_string_column_name644 string,
+very_very_very_very_very_long_string_column_name645 string,
+very_very_very_very_very_long_string_column_name646 string,
+very_very_very_very_very_long_string_column_name647 string,
+very_very_very_very_very_long_string_column_name648 string,
+very_very_very_very_very_long_string_column_name649 string,
+very_very_very_very_very_long_string_column_name650 string,
+very_very_very_very_very_long_string_column_name651 string,
+very_very_very_very_very_long_string_column_name652 string,
+very_very_very_very_very_long_string_column_name653 string,
+very_very_very_very_very_long_string_column_name654 string,
+very_very_very_very_very_long_string_column_name655 string,
+very_very_very_very_very_long_string_column_name656 string,
+very_very_very_very_very_long_string_column_name657 string,
+very_very_very_very_very_long_string_column_name658 string,
+very_very_very_very_very_long_string_column_name659 string,
+very_very_very_very_very_long_string_column_name660 string,
+very_very_very_very_very_long_string_column_name661 string,
+very_very_very_very_very_long_string_column_name662 string,
+very_very_very_very_very_long_string_column_name663 string,
+very_very_very_very_very_long_string_column_name664 string,
+very_very_very_very_very_long_string_column_name665 string,
+very_very_very_very_very_long_string_column_name666 string,
+very_very_very_very_very_long_string_column_name667 string,
+very_very_very_very_very_long_string_column_name668 string,
+very_very_very_very_very_long_string_column_name669 string,
+very_very_very_very_very_long_string_column_name670 string,
+very_very_very_very_very_long_string_column_name671 string,
+very_very_very_very_very_long_string_column_name672 string,
+very_very_very_very_very_long_string_column_name673 string,
+very_very_very_very_very_long_string_column_name674 string,
+very_very_very_very_very_long_string_column_name675 string,
+very_very_very_very_very_long_string_column_name676 string,
+very_very_very_very_very_long_string_column_name677 string,
+very_very_very_very_very_long_string_column_name678 string,
+very_very_very_very_very_long_string_column_name679 string,
+very_very_very_very_very_long_string_column_name680 string,
+very_very_very_very_very_long_string_column_name681 string,
+very_very_very_very_very_long_string_column_name682 string,
+very_very_very_very_very_long_string_column_name683 string,
+very_very_very_very_very_long_string_column_name684 string,
+very_very_very_very_very_long_string_column_name685 string,
+very_very_very_very_very_long_string_column_name686 string,
+very_very_very_very_very_long_string_column_name687 string,
+very_very_very_very_very_long_string_column_name688 string,
+very_very_very_very_very_long_string_column_name689 string,
+very_very_very_very_very_long_string_column_name690 string,
+very_very_very_very_very_long_string_column_name691 string,
+very_very_very_very_very_long_string_column_name692 string,
+very_very_very_very_very_long_string_column_name693 string,
+very_very_very_very_very_long_string_column_name694 string,
+very_very_very_very_very_long_string_column_name695 string,
+very_very_very_very_very_long_string_column_name696 string,
+very_very_very_very_very_long_string_column_name697 string,
+very_very_very_very_very_long_string_column_name698 string,
+very_very_very_very_very_long_string_column_name699 string,
+very_very_very_very_very_long_string_column_name700 string,
+very_very_very_very_very_long_string_column_name701 string,
+very_very_very_very_very_long_string_column_name702 string,
+very_very_very_very_very_long_string_column_name703 string,
+very_very_very_very_very_long_string_column_name704 string,
+very_very_very_very_very_long_string_column_name705 string,
+very_very_very_very_very_long_string_column_name706 string,
+very_very_very_very_very_long_string_column_name707 string,
+very_very_very_very_very_long_string_column_name708 string,
+very_very_very_very_very_long_string_column_name709 string,
+very_very_very_very_very_long_string_column_name710 string,
+very_very_very_very_very_long_string_column_name711 string,
+very_very_very_very_very_long_string_column_name712 string,
+very_very_very_very_very_long_string_column_name713 string,
+very_very_very_very_very_long_string_column_name714 string,
+very_very_very_very_very_long_string_column_name715 string,
+very_very_very_very_very_long_string_column_name716 string,
+very_very_very_very_very_long_string_column_name717 string,
+very_very_very_very_very_long_string_column_name718 string,
+very_very_very_very_very_long_string_column_name719 string,
+very_very_very_very_very_long_string_column_name720 string,
+very_very_very_very_very_long_string_column_name721 string,
+very_very_very_very_very_long_string_column_name722 string,
+very_very_very_very_very_long_string_column_name723 string,
+very_very_very_very_very_long_string_column_name724 string,
+very_very_very_very_very_long_string_column_name725 string,
+very_very_very_very_very_long_string_column_name726 string,
+very_very_very_very_very_long_string_column_name727 string,
+very_very_very_very_very_long_string_column_name728 string,
+very_very_very_very_very_long_string_column_name729 string,
+very_very_very_very_very_long_string_column_name730 string,
+very_very_very_very_very_long_string_column_name731 string,
+very_very_very_very_very_long_string_column_name732 string,
+very_very_very_very_very_long_string_column_name733 string,
+very_very_very_very_very_long_string_column_name734 string,
+very_very_very_very_very_long_string_column_name735 string,
+very_very_very_very_very_long_string_column_name736 string,
+very_very_very_very_very_long_string_column_name737 string,
+very_very_very_very_very_long_string_column_name738 string,
+very_very_very_very_very_long_string_column_name739 string,
+very_very_very_very_very_long_string_column_name740 string,
+very_very_very_very_very_long_string_column_name741 string,
+very_very_very_very_very_long_string_column_name742 string,
+very_very_very_very_very_long_string_column_name743 string,
+very_very_very_very_very_long_string_column_name744 string,
+very_very_very_very_very_long_string_column_name745 string,
+very_very_very_very_very_long_string_column_name746 string,
+very_very_very_very_very_long_string_column_name747 string,
+very_very_very_very_very_long_string_column_name748 string,
+very_very_very_very_very_long_string_column_name749 string,
+very_very_very_very_very_long_string_column_name750 string,
+very_very_very_very_very_long_string_column_name751 string,
+very_very_very_very_very_long_string_column_name752 string,
+very_very_very_very_very_long_string_column_name753 string,
+very_very_very_very_very_long_string_column_name754 string,
+very_very_very_very_very_long_string_column_name755 string,
+very_very_very_very_very_long_string_column_name756 string,
+very_very_very_very_very_long_string_column_name757 string,
+very_very_very_very_very_long_string_column_name758 string,
+very_very_very_very_very_long_string_column_name759 string,
+very_very_very_very_very_long_string_column_name760 string,
+very_very_very_very_very_long_string_column_name761 string,
+very_very_very_very_very_long_string_column_name762 string,
+very_very_very_very_very_long_string_column_name763 string,
+very_very_very_very_very_long_string_column_name764 string,
+very_very_very_very_very_long_string_column_name765 string,
+very_very_very_very_very_long_string_column_name766 string,
+very_very_very_very_very_long_string_column_name767 string,
+very_very_very_very_very_long_string_column_name768 string,
+very_very_very_very_very_long_string_column_name769 string,
+very_very_very_very_very_long_string_column_name770 string,
+very_very_very_very_very_long_string_column_name771 string,
+very_very_very_very_very_long_string_column_name772 string,
+very_very_very_very_very_long_string_column_name773 string,
+very_very_very_very_very_long_string_column_name774 string,
+very_very_very_very_very_long_string_column_name775 string,
+very_very_very_very_very_long_string_column_name776 string,
+very_very_very_very_very_long_string_column_name777 string,
+very_very_very_very_very_long_string_column_name778 string,
+very_very_very_very_very_long_string_column_name779 string,
+very_very_very_very_very_long_string_column_name780 string,
+very_very_very_very_very_long_string_column_name781 string,
+very_very_very_very_very_long_string_column_name782 string,
+very_very_very_very_very_long_string_column_name783 string,
+very_very_very_very_very_long_string_column_name784 string,
+very_very_very_very_very_long_string_column_name785 string,
+very_very_very_very_very_long_string_column_name786 string,
+very_very_very_very_very_long_string_column_name787 string,
+very_very_very_very_very_long_string_column_name788 string,
+very_very_very_very_very_long_string_column_name789 string,
+very_very_very_very_very_long_string_column_name790 string,
+very_very_very_very_very_long_string_column_name791 string,
+very_very_very_very_very_long_string_column_name792 string,
+very_very_very_very_very_long_string_column_name793 string,
+very_very_very_very_very_long_string_column_name794 string,
+very_very_very_very_very_long_string_column_name795 string,
+very_very_very_very_very_long_string_column_name796 string,
+very_very_very_very_very_long_string_column_name797 string,
+very_very_very_very_very_long_string_column_name798 string,
+very_very_very_very_very_long_string_column_name799 string,
+very_very_very_very_very_long_string_column_name800 string,
+very_very_very_very_very_long_string_column_name801 string,
+very_very_very_very_very_long_string_column_name802 string,
+very_very_very_very_very_long_string_column_name803 string,
+very_very_very_very_very_long_string_column_name804 string,
+very_very_very_very_very_long_string_column_name805 string,
+very_very_very_very_very_long_string_column_name806 string,
+very_very_very_very_very_long_string_column_name807 string,
+very_very_very_very_very_long_string_column_name808 string,
+very_very_very_very_very_long_string_column_name809 string,
+very_very_very_very_very_long_string_column_name810 string,
+very_very_very_very_very_long_string_column_name811 string,
+very_very_very_very_very_long_string_column_name812 string,
+very_very_very_very_very_long_string_column_name813 string,
+very_very_very_very_very_long_string_column_name814 string,
+very_very_very_very_very_long_string_column_name815 string,
+very_very_very_very_very_long_string_column_name816 string,
+very_very_very_very_very_long_string_column_name817 string,
+very_very_very_very_very_long_string_column_name818 string,
+very_very_very_very_very_long_string_column_name819 string,
+very_very_very_very_very_long_string_column_name820 string,
+very_very_very_very_very_long_string_column_name821 string,
+very_very_very_very_very_long_string_column_name822 string,
+very_very_very_very_very_long_string_column_name823 string,
+very_very_very_very_very_long_string_column_name824 string,
+very_very_very_very_very_long_string_column_name825 string,
+very_very_very_very_very_long_string_column_name826 string,
+very_very_very_very_very_long_string_column_name827 string,
+very_very_very_very_very_long_string_column_name828 string,
+very_very_very_very_very_long_string_column_name829 string,
+very_very_very_very_very_long_string_column_name830 string,
+very_very_very_very_very_long_string_column_name831 string,
+very_very_very_very_very_long_string_column_name832 string,
+very_very_very_very_very_long_string_column_name833 string,
+very_very_very_very_very_long_string_column_name834 string,
+very_very_very_very_very_long_string_column_name835 string,
+very_very_very_very_very_long_string_column_name836 string,
+very_very_very_very_very_long_string_column_name837 string,
+very_very_very_very_very_long_string_column_name838 string,
+very_very_very_very_very_long_string_column_name839 string,
+very_very_very_very_very_long_string_column_name840 string,
+very_very_very_very_very_long_string_column_name841 string,
+very_very_very_very_very_long_string_column_name842 string,
+very_very_very_very_very_long_string_column_name843 string,
+very_very_very_very_very_long_string_column_name844 string,
+very_very_very_very_very_long_string_column_name845 string,
+very_very_very_very_very_long_string_column_name846 string,
+very_very_very_very_very_long_string_column_name847 string,
+very_very_very_very_very_long_string_column_name848 string,
+very_very_very_very_very_long_string_column_name849 string,
+very_very_very_very_very_long_string_column_name850 string,
+very_very_very_very_very_long_string_column_name851 string,
+very_very_very_very_very_long_string_column_name852 string,
+very_very_very_very_very_long_string_column_name853 string,
+very_very_very_very_very_long_string_column_name854 string,
+very_very_very_very_very_long_string_column_name855 string,
+very_very_very_very_very_long_string_column_name856 string,
+very_very_very_very_very_long_string_column_name857 string,
+very_very_very_very_very_long_string_column_name858 string,
+very_very_very_very_very_long_string_column_name859 string,
+very_very_very_very_very_long_string_column_name860 string,
+very_very_very_very_very_long_string_column_name861 string,
+very_very_very_very_very_long_string_column_name862 string,
+very_very_very_very_very_long_string_column_name863 string,
+very_very_very_very_very_long_string_column_name864 string,
+very_very_very_very_very_long_string_column_name865 string,
+very_very_very_very_very_long_string_column_name866 string,
+very_very_very_very_very_long_string_column_name867 string,
+very_very_very_very_very_long_string_column_name868 string,
+very_very_very_very_very_long_string_column_name869 string,
+very_very_very_very_very_long_string_column_name870 string,
+very_very_very_very_very_long_string_column_name871 string,
+very_very_very_very_very_long_string_column_name872 string,
+very_very_very_very_very_long_string_column_name873 string,
+very_very_very_very_very_long_string_column_name874 string,
+very_very_very_very_very_long_string_column_name875 string,
+very_very_very_very_very_long_string_column_name876 string,
+very_very_very_very_very_long_string_column_name877 string,
+very_very_very_very_very_long_string_column_name878 string,
+very_very_very_very_very_long_string_column_name879 string,
+very_very_very_very_very_long_string_column_name880 string,
+very_very_very_very_very_long_string_column_name881 string,
+very_very_very_very_very_long_string_column_name882 string,
+very_very_very_very_very_long_string_column_name883 string,
+very_very_very_very_very_long_string_column_name884 string,
+very_very_very_very_very_long_string_column_name885 string,
+very_very_very_very_very_long_string_column_name886 string,
+very_very_very_very_very_long_string_column_name887 string,
+very_very_very_very_very_long_string_column_name888 string,
+very_very_very_very_very_long_string_column_name889 string,
+very_very_very_very_very_long_string_column_name890 string,
+very_very_very_very_very_long_string_column_name891 string,
+very_very_very_very_very_long_string_column_name892 string,
+very_very_very_very_very_long_string_column_name893 string,
+very_very_very_very_very_long_string_column_name894 string,
+very_very_very_very_very_long_string_column_name895 string,
+very_very_very_very_very_long_string_column_name896 string,
+very_very_very_very_very_long_string_column_name897 string,
+very_very_very_very_very_long_string_column_name898 string,
+very_very_very_very_very_long_string_column_name899 string,
+very_very_very_very_very_long_string_column_name900 string,
+very_very_very_very_very_long_string_column_name901 string,
+very_very_very_very_very_long_string_column_name902 string,
+very_very_very_very_very_long_string_column_name903 string,
+very_very_very_very_very_long_string_column_name904 string,
+very_very_very_very_very_long_string_column_name905 string,
+very_very_very_very_very_long_string_column_name906 string,
+very_very_very_very_very_long_string_column_name907 string,
+very_very_very_very_very_long_string_column_name908 string,
+very_very_very_very_very_long_string_column_name909 string,
+very_very_very_very_very_long_string_column_name910 string,
+very_very_very_very_very_long_string_column_name911 string,
+very_very_very_very_very_long_string_column_name912 string,
+very_very_very_very_very_long_string_column_name913 string,
+very_very_very_very_very_long_string_column_name914 string,
+very_very_very_very_very_long_string_column_name915 string,
+very_very_very_very_very_long_string_column_name916 string,
+very_very_very_very_very_long_string_column_name917 string,
+very_very_very_very_very_long_string_column_name918 string,
+very_very_very_very_very_long_string_column_name919 string,
+very_very_very_very_very_long_string_column_name920 string,
+very_very_very_very_very_long_string_column_name921 string,
+very_very_very_very_very_long_string_column_name922 string,
+very_very_very_very_very_long_string_column_name923 string,
+very_very_very_very_very_long_string_column_name924 string,
+very_very_very_very_very_long_string_column_name925 string,
+very_very_very_very_very_long_string_column_name926 string,
+very_very_very_very_very_long_string_column_name927 string,
+very_very_very_very_very_long_string_column_name928 string,
+very_very_very_very_very_long_string_column_name929 string,
+very_very_very_very_very_long_string_column_name930 string,
+very_very_very_very_very_long_string_column_name931 string,
+very_very_very_very_very_long_string_column_name932 string,
+very_very_very_very_very_long_string_column_name933 string,
+very_very_very_very_very_long_string_column_name934 string,
+very_very_very_very_very_long_string_column_name935 string,
+very_very_very_very_very_long_string_column_name936 string,
+very_very_very_very_very_long_string_column_name937 string,
+very_very_very_very_very_long_string_column_name938 string,
+very_very_very_very_very_long_string_column_name939 string,
+very_very_very_very_very_long_string_column_name940 string,
+very_very_very_very_very_long_string_column_name941 string,
+very_very_very_very_very_long_string_column_name942 string,
+very_very_very_very_very_long_string_column_name943 string,
+very_very_very_very_very_long_string_column_name944 string,
+very_very_very_very_very_long_string_column_name945 string,
+very_very_very_very_very_long_string_column_name946 string,
+very_very_very_very_very_long_string_column_name947 string,
+very_very_very_very_very_long_string_column_name948 string,
+very_very_very_very_very_long_string_column_name949 string,
+very_very_very_very_very_long_string_column_name950 string,
+very_very_very_very_very_long_string_column_name951 string,
+very_very_very_very_very_long_string_column_name952 string,
+very_very_very_very_very_long_string_column_name953 string,
+very_very_very_very_very_long_string_column_name954 string,
+very_very_very_very_very_long_string_column_name955 string,
+very_very_very_very_very_long_string_column_name956 string,
+very_very_very_very_very_long_string_column_name957 string,
+very_very_very_very_very_long_string_column_name958 string,
+very_very_very_very_very_long_string_column_name959 string,
+very_very_very_very_very_long_string_column_name960 string,
+very_very_very_very_very_long_string_column_name961 string,
+very_very_very_very_very_long_string_column_name962 string,
+very_very_very_very_very_long_string_column_name963 string,
+very_very_very_very_very_long_string_column_name964 string,
+very_very_very_very_very_long_string_column_name965 string,
+very_very_very_very_very_long_string_column_name966 string,
+very_very_very_very_very_long_string_column_name967 string,
+very_very_very_very_very_long_string_column_name968 string,
+very_very_very_very_very_long_string_column_name969 string,
+very_very_very_very_very_long_string_column_name970 string,
+very_very_very_very_very_long_string_column_name971 string,
+very_very_very_very_very_long_string_column_name972 string,
+very_very_very_very_very_long_string_column_name973 string,
+very_very_very_very_very_long_string_column_name974 string,
+very_very_very_very_very_long_string_column_name975 string,
+very_very_very_very_very_long_string_column_name976 string,
+very_very_very_very_very_long_string_column_name977 string,
+very_very_very_very_very_long_string_column_name978 string,
+very_very_very_very_very_long_string_column_name979 string,
+very_very_very_very_very_long_string_column_name980 string,
+very_very_very_very_very_long_string_column_name981 string,
+very_very_very_very_very_long_string_column_name982 string,
+very_very_very_very_very_long_string_column_name983 string,
+very_very_very_very_very_long_string_column_name984 string,
+very_very_very_very_very_long_string_column_name985 string,
+very_very_very_very_very_long_string_column_name986 string,
+very_very_very_very_very_long_string_column_name987 string,
+very_very_very_very_very_long_string_column_name988 string,
+very_very_very_very_very_long_string_column_name989 string,
+very_very_very_very_very_long_string_column_name990 string,
+very_very_very_very_very_long_string_column_name991 string,
+very_very_very_very_very_long_string_column_name992 string,
+very_very_very_very_very_long_string_column_name993 string,
+very_very_very_very_very_long_string_column_name994 string,
+very_very_very_very_very_long_string_column_name995 string,
+very_very_very_very_very_long_string_column_name996 string,
+very_very_very_very_very_long_string_column_name997 string,
+very_very_very_very_very_long_string_column_name998 string,
+very_very_very_very_very_long_string_column_name999 string,
+very_very_very_very_very_long_string_column_name1000 string
+) partitioned by (
+p0 string,
+p1 string,
+p2 string
+)
+row format delimited fields terminated by '|'
+stored as textfile
+location '/test-warehouse/1k_col_tbl'
+tblproperties ('serialization.null.format'='');
diff --git a/testdata/scale_test_metadata/load-1k_col_tbl.sh b/testdata/scale_test_metadata/load-1k_col_tbl.sh
new file mode 100755
index 000000000..559cfe8f7
--- /dev/null
+++ b/testdata/scale_test_metadata/load-1k_col_tbl.sh
@@ -0,0 +1,44 @@
+#!/usr/bin/env bash
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT 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 load 150k partitions into /test-warehouse/1k_col_tbl
+# with 3 long partition keys, each 250 chars.
+
+mkdir batch-1
+cd batch-1
+
+# Create data for "p1=0000....0001" in local file system
+p1=$(printf '%*s\n' 250 "1" | tr ' ' '0')
+for j in {1..1000}; do
+    z=$(printf '%*s\n' 250 "$j" | tr ' ' '0')
+    ppath="p1=$p1/p2=$z/p3=$z"
+    delims=$(printf '%*s\n' 1000 "" | tr ' ' '|')
+    mkdir -p "$ppath"; echo "${j}${delims}" > "$ppath/data.txt";
+done
+
+# Put data for "p1=0000....0001" to HDFS.
+hdfs dfs -put -f "p1=$p1" /test-warehouse/1k_col_tbl
+
+# Create the other partitions by copying from "p1=0000....0001"
+for i in {2..150}; do
+    pn=$(printf '%*s\n' 250 "$i" | tr ' ' '0')
+    echo "loading p1=$pn"
+    hdfs dfs -cp "/test-warehouse/1k_col_tbl/p1=$p1" "/test-warehouse/1k_col_tbl/p1=$pn"
+done
+