You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@arrow.apache.org by we...@apache.org on 2019/02/05 15:54:32 UTC

[arrow] branch master updated: PARQUET-1525: [C++] remove dependency on getopt in parquet tools

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

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


The following commit(s) were added to refs/heads/master by this push:
     new 623deef  PARQUET-1525: [C++] remove dependency on getopt in parquet tools
623deef is described below

commit 623deef5347cddd2c9f9e8d39b66a60e2a59d89d
Author: Renat Valiullin <ri...@gmail.com>
AuthorDate: Tue Feb 5 09:54:22 2019 -0600

    PARQUET-1525: [C++] remove dependency on getopt in parquet tools
    
    Author: Renat Valiullin <ri...@gmail.com>
    
    Closes #3545 from rip-nsk/ARROW-4456 and squashes the following commits:
    
    939a4fb3e <Renat Valiullin> Add parquet tools to ci/cpp-msvc-build-main
    03422aa99 <Renat Valiullin> remove dependency on getopt in parquet tools
---
 ci/cpp-msvc-build-main.bat               |  1 +
 cpp/tools/parquet/parquet-dump-schema.cc | 27 +++++++++------------------
 2 files changed, 10 insertions(+), 18 deletions(-)

diff --git a/ci/cpp-msvc-build-main.bat b/ci/cpp-msvc-build-main.bat
index 779af15..5b1842d 100644
--- a/ci/cpp-msvc-build-main.bat
+++ b/ci/cpp-msvc-build-main.bat
@@ -57,6 +57,7 @@ cmake -G "%GENERATOR%" %CMAKE_ARGS% ^
       -DCMAKE_CXX_FLAGS_RELEASE="/MD %CMAKE_CXX_FLAGS_RELEASE%" ^
       -DARROW_GANDIVA=%ARROW_BUILD_GANDIVA% ^
       -DARROW_PARQUET=ON ^
+      -DPARQUET_BUILD_EXECUTABLES=ON ^
       -DARROW_PYTHON=ON ^
       ..  || exit /B
 cmake --build . --target install --config %CONFIGURATION%  || exit /B
diff --git a/cpp/tools/parquet/parquet-dump-schema.cc b/cpp/tools/parquet/parquet-dump-schema.cc
index 7b6c1b1..0d7c242 100644
--- a/cpp/tools/parquet/parquet-dump-schema.cc
+++ b/cpp/tools/parquet/parquet-dump-schema.cc
@@ -15,39 +15,30 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include <getopt.h>
 #include <iostream>
 
 #include "parquet/api/reader.h"
 #include "parquet/api/schema.h"
 
 int main(int argc, char** argv) {
-  static struct option options[] = {
-    {"help", no_argument, nullptr, 'h'}
-  };
   bool help_flag = false;
-  int opt_index;
-  do {
-    opt_index = getopt_long(argc, argv, "h", options, nullptr);
-    switch (opt_index) {
-    case '?':
-    case 'h':
+  std::string filename;
+
+  for (int i = 1; i < argc; i++) {
+    if (!std::strcmp(argv[i], "-?") || !std::strcmp(argv[i], "-h") ||
+        !std::strcmp(argv[i], "--help")) {
       help_flag = true;
-      opt_index = -1;
-      break;
+    } else {
+      filename = argv[i];
     }
-  } while (opt_index != -1);
-  argc -= optind;
-  argv += optind;
+  }
 
-  if (argc != 1 || help_flag) {
+  if (argc != 2 || help_flag) {
     std::cerr << "Usage: parquet-dump-schema [-h] [--help]"
               << " <filename>" << std::endl;
     return -1;
   }
 
-  std::string filename = argv[0];
-
   try {
     std::unique_ptr<parquet::ParquetFileReader> reader =
         parquet::ParquetFileReader::OpenFile(filename);