[Liblas-commits] hg-main-tree: fix up schema override support
liblas-commits at liblas.org
liblas-commits at liblas.org
Tue Apr 26 13:01:12 EDT 2011
details: http://hg.libpc.orghg-main-tree/rev/2ffec9578e78
changeset: 657:2ffec9578e78
user: Howard Butler <hobu.inc at gmail.com>
date: Tue Apr 26 12:01:05 2011 -0500
description:
fix up schema override support
diffstat:
src/drivers/oci/Writer.cpp | 37 +++++++++++++++++++++++++++++++++++--
src/drivers/oci/common.cpp | 2 +-
2 files changed, 36 insertions(+), 3 deletions(-)
diffs (70 lines):
diff -r 021e7b867c27 -r 2ffec9578e78 src/drivers/oci/Writer.cpp
--- a/src/drivers/oci/Writer.cpp Tue Apr 26 11:33:26 2011 -0500
+++ b/src/drivers/oci/Writer.cpp Tue Apr 26 12:01:05 2011 -0500
@@ -40,10 +40,41 @@
#include <libpc/exceptions.hpp>
+#include <fstream>
namespace libpc { namespace drivers { namespace oci {
+
+std::string ReadFile(std::string filename)
+{
+
+ std::istream* infile = Utils::openFile(filename, true);
+ std::ifstream::pos_type size;
+ // char* data;
+ std::vector<char> data;
+ if (infile->good()){
+ infile->seekg(0, std::ios::end);
+ size = infile->tellg();
+ data.resize(static_cast<std::vector<char>::size_type>(size));
+ // data = new char [size];
+ infile->seekg (0, std::ios::beg);
+ infile->read (&data.front(), size);
+ // infile->close();
+
+ // delete[] data;
+ delete infile;
+ return std::string(&data[0], data.size());
+ // return data;
+ }
+ else
+ {
+ throw libpc_error("unable to open file!");
+ // return data;
+ }
+
+}
+
Writer::Writer(Stage& prevStage, Options& options)
: libpc::Writer(prevStage)
, m_stage(prevStage)
@@ -607,8 +638,10 @@
if (bHaveSchemaOverride)
{
- char* schema = (char*) malloc(point_schema_override.size() * sizeof(char));
- strncpy(schema, point_schema_override.c_str(), point_schema_override.size());
+ std::string schema_data = ReadFile(point_schema_override);
+ char* schema = (char*) malloc(schema_data.size() * sizeof(char) + 1);
+ strncpy(schema, schema_data.c_str(), schema_data.size());
+ schema[schema_data.size()] = '\0';
statement->WriteCLob( &schema_locator, schema );
statement->Bind(&schema_locator);
}
diff -r 021e7b867c27 -r 2ffec9578e78 src/drivers/oci/common.cpp
--- a/src/drivers/oci/common.cpp Tue Apr 26 11:33:26 2011 -0500
+++ b/src/drivers/oci/common.cpp Tue Apr 26 12:01:05 2011 -0500
@@ -59,7 +59,7 @@
tree.put("capacity", 8000);
tree.put("precision", 8);
tree.put("cloud_id", -1);
- tree.put("dimensions", 5);
+ tree.put("dimensions", 8);
tree.put("connection", std::string(""));
tree.put("block_table_name", std::string("output"));
tree.put("block_table_partition_column", std::string(""));
More information about the Liblas-commits
mailing list