[ https://issues.apache.org/jira/browse/ORC-178?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16117447#comment-16117447 ]
ASF GitHub Bot commented on ORC-178: ------------------------------------ Github user xndai commented on a diff in the pull request: https://github.com/apache/orc/pull/128#discussion_r131780372 --- Diff: c++/include/orc/Writer.hh --- @@ -0,0 +1,228 @@ +/** + * 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. + */ + +#ifndef ORC_WRITER_HH +#define ORC_WRITER_HH + +#include "orc/Common.hh" +#include "orc/orc-config.hh" +#include "orc/Type.hh" +#include "orc/Vector.hh" + +#include <memory> +#include <string> +#include <vector> + +namespace orc { + + // classes that hold data members so we can maintain binary compatibility + struct WriterOptionsPrivate; + + enum EncodingStrategy { + EncodingStrategy_SPEED = 0, + EncodingStrategy_COMPRESSION + }; + + enum CompressionStrategy { + CompressionStrategy_SPEED = 0, + CompressionStrategy_COMPRESSION + }; + + class Timezone; + + /** + * Options for creating a Writer. + */ + class WriterOptions { + private: + ORC_UNIQUE_PTR<WriterOptionsPrivate> privateBits; + + public: + WriterOptions(); + WriterOptions(const WriterOptions&); + WriterOptions(WriterOptions&); + WriterOptions& operator=(const WriterOptions&); + virtual ~WriterOptions(); + + /** + * Set the strip size. + */ + WriterOptions& setStripeSize(uint64_t size); + + /** + * Get the strip size. + * @return if not set, return default value. + */ + uint64_t getStripeSize() const; + + /** + * Set the data compression block size. + */ + WriterOptions& setCompressionBlockSize(uint64_t size); + + /** + * Get the data compression block size. + * @return if not set, return default value. + */ + uint64_t getCompressionBlockSize() const; + + /** + * Set row index stride. + */ + WriterOptions& setRowIndexStride(uint64_t stride); --- End diff -- Sure. > Implement Basic C++ Writer and Writer Option > -------------------------------------------- > > Key: ORC-178 > URL: https://issues.apache.org/jira/browse/ORC-178 > Project: ORC > Issue Type: Sub-task > Components: C++ > Reporter: Gang Wu > Assignee: Xiening Dai > > 1. write orc file header, file footer, postscript, etc. > 2. write columns of all types > 3. write column statistics > 4. write index stream in writer and reader seeks to row based on index > information -- This message was sent by Atlassian JIRA (v6.4.14#64029)