http://git-wip-us.apache.org/repos/asf/ignite/blob/e8287063/modules/platforms/cpp/odbc/odbc-driver/include/ignite/odbc/meta/primary_key_meta.h ---------------------------------------------------------------------- diff --git a/modules/platforms/cpp/odbc/odbc-driver/include/ignite/odbc/meta/primary_key_meta.h b/modules/platforms/cpp/odbc/odbc-driver/include/ignite/odbc/meta/primary_key_meta.h deleted file mode 100644 index e479e10..0000000 --- a/modules/platforms/cpp/odbc/odbc-driver/include/ignite/odbc/meta/primary_key_meta.h +++ /dev/null @@ -1,188 +0,0 @@ -/* - * 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 _IGNITE_ODBC_PRIMARY_KEY_META -#define _IGNITE_ODBC_PRIMARY_KEY_META - -#include <stdint.h> -#include <string> - -#include "ignite/impl/binary/binary_reader_impl.h" - -#include "ignite/odbc/utility.h" - -namespace ignite -{ - namespace odbc - { - namespace meta - { - /** - * Primary key metadata. - */ - class PrimaryKeyMeta - { - public: - /** - * Default constructor. - */ - PrimaryKeyMeta() - { - // No-op. - } - - /** - * Constructor. - * - * @param catalog Catalog name. - * @param schema Schema name. - * @param table Table name. - * @param column Column name. - * @param keySeq Column sequence number in key (starting with 1). - * @param keyName Key name. - */ - PrimaryKeyMeta(const std::string& catalog, const std::string& schema, - const std::string& table, const std::string& column, int16_t keySeq, - const std::string& keyName) : - catalog(catalog), - schema(schema), - table(table), - column(column), - keySeq(keySeq), - keyName(keyName) - { - // No-op. - } - - /** - * Destructor. - */ - ~PrimaryKeyMeta() - { - // No-op. - } - - /** - * Copy constructor. - */ - PrimaryKeyMeta(const PrimaryKeyMeta& other) : - catalog(other.catalog), - schema(other.schema), - table(other.table), - column(other.column), - keySeq(other.keySeq), - keyName(other.keyName) - { - // No-op. - } - - /** - * Copy operator. - */ - PrimaryKeyMeta& operator=(const PrimaryKeyMeta& other) - { - catalog = other.catalog; - schema = other.schema; - table = other.table; - column = other.column; - keySeq = other.keySeq; - keyName = other.keyName; - - return *this; - } - - /** - * Get catalog name. - * @return Catalog name. - */ - const std::string& GetCatalogName() const - { - return catalog; - } - - /** - * Get schema name. - * @return Schema name. - */ - const std::string& GetSchemaName() const - { - return schema; - } - - /** - * Get table name. - * @return Table name. - */ - const std::string& GetTableName() const - { - return table; - } - - /** - * Get column name. - * @return Column name. - */ - const std::string& GetColumnName() const - { - return table; - } - - /** - * Get column sequence number in key. - * @return Sequence number in key. - */ - int16_t GetKeySeq() const - { - return keySeq; - } - - /** - * Get key name. - * @return Key name. - */ - const std::string& GetKeyName() const - { - return keyName; - } - - private: - /** Catalog name. */ - std::string catalog; - - /** Schema name. */ - std::string schema; - - /** Table name. */ - std::string table; - - /** Collumn name. */ - std::string column; - - /** Column sequence number in key. */ - int16_t keySeq; - - /** Key name. */ - std::string keyName; - }; - - /** Table metadata vector alias. */ - typedef std::vector<PrimaryKeyMeta> PrimaryKeyMetaVector; - } - } -} - -#endif \ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ignite/blob/e8287063/modules/platforms/cpp/odbc/odbc-driver/include/ignite/odbc/meta/table_meta.h ---------------------------------------------------------------------- diff --git a/modules/platforms/cpp/odbc/odbc-driver/include/ignite/odbc/meta/table_meta.h b/modules/platforms/cpp/odbc/odbc-driver/include/ignite/odbc/meta/table_meta.h deleted file mode 100644 index 0618217..0000000 --- a/modules/platforms/cpp/odbc/odbc-driver/include/ignite/odbc/meta/table_meta.h +++ /dev/null @@ -1,166 +0,0 @@ -/* - * 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 _IGNITE_ODBC_TABLE_META -#define _IGNITE_ODBC_TABLE_META - -#include <stdint.h> -#include <string> - -#include "ignite/impl/binary/binary_reader_impl.h" - -#include "ignite/odbc/utility.h" - -namespace ignite -{ - namespace odbc - { - namespace meta - { - /** - * Table metadata. - */ - class TableMeta - { - public: - /** - * Default constructor. - */ - TableMeta() - { - // No-op. - } - - /** - * Constructor. - * - * @param catalogName Catalog name. - * @param schemaName Schema name. - * @param tableName Table name. - * @param tableType Table type. - */ - TableMeta(const std::string& catalogName, const std::string& schemaName, - const std::string& tableName, const std::string& tableType) : - catalogName(catalogName), schemaName(schemaName), tableName(tableName), - tableType(tableType) - { - // No-op. - } - - /** - * Destructor. - */ - ~TableMeta() - { - // No-op. - } - - /** - * Copy constructor. - */ - TableMeta(const TableMeta& other) : - catalogName(other.catalogName), - schemaName(other.schemaName), - tableName(other.tableName), - tableType(other.tableType) - { - // No-op. - } - - /** - * Copy operator. - */ - TableMeta& operator=(const TableMeta& other) - { - catalogName = other.catalogName; - schemaName = other.schemaName; - tableName = other.tableName; - tableType = other.tableType; - - return *this; - } - - /** - * Read using reader. - * @param reader Reader. - */ - void Read(ignite::impl::binary::BinaryReaderImpl& reader); - - /** - * Get catalog name. - * @return Catalog name. - */ - const std::string& GetCatalogName() const - { - return catalogName; - } - - /** - * Get schema name. - * @return Schema name. - */ - const std::string& GetSchemaName() const - { - return schemaName; - } - - /** - * Get table name. - * @return Table name. - */ - const std::string& GetTableName() const - { - return tableName; - } - - /** - * Get table type. - * @return Table type. - */ - const std::string& GetTableType() const - { - return tableType; - } - - private: - /** Catalog name. */ - std::string catalogName; - - /** Schema name. */ - std::string schemaName; - - /** Table name. */ - std::string tableName; - - /** Table type. */ - std::string tableType; - }; - - /** Table metadata vector alias. */ - typedef std::vector<TableMeta> TableMetaVector; - - /** - * Read tables metadata collection. - * @param reader Reader. - * @param meta Collection. - */ - void ReadTableMetaVector(ignite::impl::binary::BinaryReaderImpl& reader, TableMetaVector& meta); - } - } -} - -#endif \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ignite/blob/e8287063/modules/platforms/cpp/odbc/odbc-driver/include/ignite/odbc/parser.h ---------------------------------------------------------------------- diff --git a/modules/platforms/cpp/odbc/odbc-driver/include/ignite/odbc/parser.h b/modules/platforms/cpp/odbc/odbc-driver/include/ignite/odbc/parser.h deleted file mode 100644 index 8b8f277..0000000 --- a/modules/platforms/cpp/odbc/odbc-driver/include/ignite/odbc/parser.h +++ /dev/null @@ -1,141 +0,0 @@ -/* - * 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 _IGNITE_ODBC_DRIVER_PARSER -#define _IGNITE_ODBC_DRIVER_PARSER - -#include <stdint.h> - -#include <vector> - -#include <ignite/impl/interop/interop_output_stream.h> -#include <ignite/impl/interop/interop_input_stream.h> -#include <ignite/impl/binary/binary_writer_impl.h> -#include <ignite/impl/binary/binary_reader_impl.h> - -#include "ignite/odbc/utility.h" - -namespace ignite -{ - namespace odbc - { - /** - * Message parser. - */ - class Parser - { - public: - /** Default initial size of operational memory. */ - enum { DEFAULT_MEM_ALLOCATION = 4096 }; - - /** - * Constructor. - */ - Parser(int32_t cap = DEFAULT_MEM_ALLOCATION) : inMem(cap), outMem(cap), outStream(&outMem) - { - //No-op. - } - - /** - * Destructor. - */ - ~Parser() - { - //No-op. - } - - /** - * Encode message and place encoded data in buffer. - * - * @param msg Message to encode. - * @param buf Data buffer. - */ - template<typename MsgT> - void Encode(const MsgT& msg, std::vector<int8_t>& buf) - { - using namespace ignite::impl::binary; - - ResetState(); - - BinaryWriterImpl writer(&outStream, 0); - - int32_t msgLenPos = outStream.Reserve(4); - - msg.Write(writer); - - outStream.WriteInt32(msgLenPos, outStream.Position() - 4); - - buf.resize(outStream.Position()); - - memcpy(&buf[0], outMem.Data(), outStream.Position()); - } - - /** - * Decode message from data in buffer. - * - * @param msg Message to decode. - * @param buf Data buffer. - * @note Can be optimized after InteropMemory refactoring. - */ - template<typename MsgT> - void Decode(MsgT& msg, const std::vector<int8_t>& buf) - { - using namespace ignite::impl::binary; - - //for (size_t i = 0; i < buf.size(); ++i) - // LOG_MSG("Data[%0.4d] : %0.3d, %c\n", i, (int)buf[i], buf[i] > 64 && buf[i] < 128 ? buf[i] : '.'); - - if (inMem.Capacity() < static_cast<int32_t>(buf.size())) - inMem.Reallocate(static_cast<int32_t>(buf.size())); - - memcpy(inMem.Data(), buf.data(), buf.size()); - - inMem.Length(static_cast<int32_t>(buf.size())); - - ignite::impl::interop::InteropInputStream inStream(&inMem); - - BinaryReaderImpl reader(&inStream); - - msg.Read(reader); - } - - private: - IGNITE_NO_COPY_ASSIGNMENT(Parser); - - /** - * Reset internal state of the parser. - */ - void ResetState() - { - outMem.Length(0); - - outStream.Position(0); - } - - /** Input operational memory. */ - ignite::impl::interop::InteropUnpooledMemory inMem; - - /** Output operational memory. */ - ignite::impl::interop::InteropUnpooledMemory outMem; - - /** Output stream. */ - ignite::impl::interop::InteropOutputStream outStream; - }; - } -} - -#endif \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ignite/blob/e8287063/modules/platforms/cpp/odbc/odbc-driver/include/ignite/odbc/query/column_metadata_query.h ---------------------------------------------------------------------- diff --git a/modules/platforms/cpp/odbc/odbc-driver/include/ignite/odbc/query/column_metadata_query.h b/modules/platforms/cpp/odbc/odbc-driver/include/ignite/odbc/query/column_metadata_query.h deleted file mode 100644 index 378e95c..0000000 --- a/modules/platforms/cpp/odbc/odbc-driver/include/ignite/odbc/query/column_metadata_query.h +++ /dev/null @@ -1,146 +0,0 @@ -/* - * 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 _IGNITE_ODBC_DRIVER_COLUMN_METADATA_QUERY -#define _IGNITE_ODBC_DRIVER_COLUMN_METADATA_QUERY - -#include "ignite/odbc/query/query.h" -#include "ignite/odbc/meta/column_meta.h" - -namespace ignite -{ - namespace odbc - { - /** Connection forward-declaration. */ - class Connection; - - namespace query - { - /** - * Query. - */ - class ColumnMetadataQuery : public Query - { - public: - /** - * Constructor. - * - * @param diag Diagnostics collector. - * @param connection Associated connection. - * @param schema Schema search pattern. - * @param table Table search pattern. - * @param column Column search pattern. - */ - ColumnMetadataQuery(diagnostic::Diagnosable& diag, - Connection& connection, const std::string& schema, - const std::string& table, const std::string& column); - - /** - * Destructor. - */ - virtual ~ColumnMetadataQuery(); - - /** - * Execute query. - * - * @return True on success. - */ - virtual SqlResult Execute(); - - /** - * Get column metadata. - * - * @return Column metadata. - */ - virtual const meta::ColumnMetaVector& GetMeta() const; - - /** - * Fetch next result row to application buffers. - * - * @return Operation result. - */ - virtual SqlResult FetchNextRow(app::ColumnBindingMap& columnBindings); - - /** - * Get data of the specified column in the result set. - * - * @param columnIdx Column index. - * @param buffer Buffer to put column data to. - * @return Operation result. - */ - virtual SqlResult GetColumn(uint16_t columnIdx, app::ApplicationDataBuffer& buffer); - - /** - * Close query. - * - * @return True on success. - */ - virtual SqlResult Close(); - - /** - * Check if data is available. - * - * @return True if data is available. - */ - virtual bool DataAvailable() const; - - /** - * Get number of rows affected by the statement. - * - * @return Number of rows affected by the statement. - */ - virtual int64_t AffectedRows() const; - - private: - IGNITE_NO_COPY_ASSIGNMENT(ColumnMetadataQuery); - - /** - * Make get columns metadata requets and use response to set internal state. - * - * @return Operation result. - */ - SqlResult MakeRequestGetColumnsMeta(); - - /** Connection associated with the statement. */ - Connection& connection; - - /** Schema search pattern. */ - std::string schema; - - /** Table search pattern. */ - std::string table; - - /** Column search pattern. */ - std::string column; - - /** Query executed. */ - bool executed; - - /** Fetched metadata. */ - meta::ColumnMetaVector meta; - - /** Metadata cursor. */ - meta::ColumnMetaVector::iterator cursor; - - /** Columns metadata. */ - meta::ColumnMetaVector columnsMeta; - }; - } - } -} - -#endif \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ignite/blob/e8287063/modules/platforms/cpp/odbc/odbc-driver/include/ignite/odbc/query/data_query.h ---------------------------------------------------------------------- diff --git a/modules/platforms/cpp/odbc/odbc-driver/include/ignite/odbc/query/data_query.h b/modules/platforms/cpp/odbc/odbc-driver/include/ignite/odbc/query/data_query.h deleted file mode 100644 index 88550d0..0000000 --- a/modules/platforms/cpp/odbc/odbc-driver/include/ignite/odbc/query/data_query.h +++ /dev/null @@ -1,152 +0,0 @@ -/* - * 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 _IGNITE_ODBC_DRIVER_DATA_QUERY -#define _IGNITE_ODBC_DRIVER_DATA_QUERY - -#include "ignite/odbc/query/query.h" -#include "ignite/odbc/app/parameter.h" -#include "ignite/odbc/cursor.h" - -namespace ignite -{ - namespace odbc - { - /** Connection forward-declaration. */ - class Connection; - - namespace query - { - /** - * Query. - */ - class DataQuery : public Query - { - public: - /** - * Constructor. - * - * @param diag Diagnostics collector. - * @param connection Associated connection. - * @param sql SQL query string. - * @param params SQL params. - */ - DataQuery(diagnostic::Diagnosable& diag, Connection& connection, - const std::string& sql, const app::ParameterBindingMap& params); - - /** - * Destructor. - */ - virtual ~DataQuery(); - - /** - * Execute query. - * - * @return True on success. - */ - virtual SqlResult Execute(); - - /** - * Get column metadata. - * - * @return Column metadata. - */ - virtual const meta::ColumnMetaVector& GetMeta() const; - - /** - * Fetch next result row to application buffers. - * - * @param columnBindings Application buffers to put data to. - * @return Operation result. - */ - virtual SqlResult FetchNextRow(app::ColumnBindingMap& columnBindings); - - /** - * Get data of the specified column in the result set. - * - * @param columnIdx Column index. - * @param buffer Buffer to put column data to. - * @return Operation result. - */ - virtual SqlResult GetColumn(uint16_t columnIdx, app::ApplicationDataBuffer& buffer); - - /** - * Close query. - * - * @return True on success. - */ - virtual SqlResult Close(); - - /** - * Check if data is available. - * - * @return True if data is available. - */ - virtual bool DataAvailable() const; - - /** - * Get number of rows affected by the statement. - * - * @return Number of rows affected by the statement. - */ - virtual int64_t AffectedRows() const; - - private: - IGNITE_NO_COPY_ASSIGNMENT(DataQuery); - - /** - * Make query execute request and use response to set internal - * state. - * - * @return True on success. - */ - SqlResult MakeRequestExecute(); - - /** - * Make query close request. - * - * @return True on success. - */ - SqlResult MakeRequestClose(); - - /** - * Make data fetch request and use response to set internal state. - * - * @return True on success. - */ - SqlResult MakeRequestFetch(); - - /** Connection associated with the statement. */ - Connection& connection; - - /** SQL Query. */ - std::string sql; - - /** Parameter bindings. */ - const app::ParameterBindingMap& params; - - /** Columns metadata. */ - meta::ColumnMetaVector resultMeta; - - /** Cursor. */ - std::auto_ptr<Cursor> cursor; - }; - } - } -} - -#endif \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ignite/blob/e8287063/modules/platforms/cpp/odbc/odbc-driver/include/ignite/odbc/query/foreign_keys_query.h ---------------------------------------------------------------------- diff --git a/modules/platforms/cpp/odbc/odbc-driver/include/ignite/odbc/query/foreign_keys_query.h b/modules/platforms/cpp/odbc/odbc-driver/include/ignite/odbc/query/foreign_keys_query.h deleted file mode 100644 index abd13bc..0000000 --- a/modules/platforms/cpp/odbc/odbc-driver/include/ignite/odbc/query/foreign_keys_query.h +++ /dev/null @@ -1,143 +0,0 @@ -/* - * 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 _IGNITE_ODBC_DRIVER_FOREIGN_KEYS_QUERY -#define _IGNITE_ODBC_DRIVER_FOREIGN_KEYS_QUERY - -#include "ignite/odbc/connection.h" -#include "ignite/odbc/query/query.h" - -namespace ignite -{ - namespace odbc - { - namespace query - { - /** - * Foreign keys query. - */ - class ForeignKeysQuery : public Query - { - public: - /** - * Constructor. - * - * @param diag Diagnostics collector. - * @param connection Statement-associated connection. - * @param primaryCatalog Primary key catalog name. - * @param primarySchema Primary key schema name. - * @param primaryTable Primary key table name. - * @param foreignCatalog Foreign key catalog name. - * @param foreignSchema Foreign key schema name. - * @param foreignTable Foreign key table name. - */ - ForeignKeysQuery(diagnostic::Diagnosable& diag, Connection& connection, - const std::string& primaryCatalog, const std::string& primarySchema, - const std::string& primaryTable, const std::string& foreignCatalog, - const std::string& foreignSchema, const std::string& foreignTable); - - /** - * Destructor. - */ - virtual ~ForeignKeysQuery(); - - /** - * Execute query. - * - * @return True on success. - */ - virtual SqlResult Execute(); - - /** - * Get column metadata. - * - * @return Column metadata. - */ - virtual const meta::ColumnMetaVector& GetMeta() const; - - /** - * Fetch next result row to application buffers. - * - * @return Operation result. - */ - virtual SqlResult FetchNextRow(app::ColumnBindingMap& columnBindings); - - /** - * Get data of the specified column in the result set. - * - * @param columnIdx Column index. - * @param buffer Buffer to put column data to. - * @return Operation result. - */ - virtual SqlResult GetColumn(uint16_t columnIdx, app::ApplicationDataBuffer& buffer); - - /** - * Close query. - * - * @return True on success. - */ - virtual SqlResult Close(); - - /** - * Check if data is available. - * - * @return True if data is available. - */ - virtual bool DataAvailable() const; - - /** - * Get number of rows affected by the statement. - * - * @return Number of rows affected by the statement. - */ - virtual int64_t AffectedRows() const; - - private: - IGNITE_NO_COPY_ASSIGNMENT(ForeignKeysQuery); - - /** Connection associated with the statement. */ - Connection& connection; - - /** Primary key catalog name. */ - std::string primaryCatalog; - - /** Primary key schema name. */ - std::string primarySchema; - - /** Primary key table name. */ - std::string primaryTable; - - /** Foreign key catalog name. */ - std::string foreignCatalog; - - /** Foreign key schema name. */ - std::string foreignSchema; - - /** Foreign key table name. */ - std::string foreignTable; - - /** Query executed. */ - bool executed; - - /** Columns metadata. */ - meta::ColumnMetaVector columnsMeta; - }; - } - } -} - -#endif \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ignite/blob/e8287063/modules/platforms/cpp/odbc/odbc-driver/include/ignite/odbc/query/primary_keys_query.h ---------------------------------------------------------------------- diff --git a/modules/platforms/cpp/odbc/odbc-driver/include/ignite/odbc/query/primary_keys_query.h b/modules/platforms/cpp/odbc/odbc-driver/include/ignite/odbc/query/primary_keys_query.h deleted file mode 100644 index 22e1359..0000000 --- a/modules/platforms/cpp/odbc/odbc-driver/include/ignite/odbc/query/primary_keys_query.h +++ /dev/null @@ -1,137 +0,0 @@ -/* - * 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 _IGNITE_ODBC_DRIVER_PRIMARY_KEYS_QUERY -#define _IGNITE_ODBC_DRIVER_PRIMARY_KEYS_QUERY - -#include "ignite/odbc/connection.h" -#include "ignite/odbc/query/query.h" -#include "ignite/odbc/meta/primary_key_meta.h" - -namespace ignite -{ - namespace odbc - { - namespace query - { - /** - * Primary keys query. - */ - class PrimaryKeysQuery : public Query - { - public: - /** - * Constructor. - * - * @param diag Diagnostics collector. - * @param connection Statement-associated connection. - * @param catalog Catalog name. - * @param schema Schema name. - * @param table Table name. - */ - PrimaryKeysQuery(diagnostic::Diagnosable& diag, - Connection& connection, const std::string& catalog, - const std::string& schema, const std::string& table); - - /** - * Destructor. - */ - virtual ~PrimaryKeysQuery(); - - /** - * Execute query. - * - * @return True on success. - */ - virtual SqlResult Execute(); - - /** - * Get column metadata. - * - * @return Column metadata. - */ - virtual const meta::ColumnMetaVector& GetMeta() const; - - /** - * Fetch next result row to application buffers. - * - * @return Operation result. - */ - virtual SqlResult FetchNextRow(app::ColumnBindingMap& columnBindings); - - /** - * Get data of the specified column in the result set. - * - * @param columnIdx Column index. - * @param buffer Buffer to put column data to. - * @return Operation result. - */ - virtual SqlResult GetColumn(uint16_t columnIdx, app::ApplicationDataBuffer& buffer); - - /** - * Close query. - * - * @return True on success. - */ - virtual SqlResult Close(); - - /** - * Check if data is available. - * - * @return True if data is available. - */ - virtual bool DataAvailable() const; - - /** - * Get number of rows affected by the statement. - * - * @return Number of rows affected by the statement. - */ - virtual int64_t AffectedRows() const; - - private: - IGNITE_NO_COPY_ASSIGNMENT(PrimaryKeysQuery); - - /** Connection associated with the statement. */ - Connection& connection; - - /** Catalog name. */ - std::string catalog; - - /** Schema name. */ - std::string schema; - - /** Table name. */ - std::string table; - - /** Query executed. */ - bool executed; - - /** Columns metadata. */ - meta::ColumnMetaVector columnsMeta; - - /** Primary keys metadata. */ - meta::PrimaryKeyMetaVector meta; - - /** Resultset cursor. */ - meta::PrimaryKeyMetaVector::iterator cursor; - }; - } - } -} - -#endif \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ignite/blob/e8287063/modules/platforms/cpp/odbc/odbc-driver/include/ignite/odbc/query/query.h ---------------------------------------------------------------------- diff --git a/modules/platforms/cpp/odbc/odbc-driver/include/ignite/odbc/query/query.h b/modules/platforms/cpp/odbc/odbc-driver/include/ignite/odbc/query/query.h deleted file mode 100644 index 93da5c9..0000000 --- a/modules/platforms/cpp/odbc/odbc-driver/include/ignite/odbc/query/query.h +++ /dev/null @@ -1,119 +0,0 @@ -/* - * 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 _IGNITE_ODBC_DRIVER_QUERY -#define _IGNITE_ODBC_DRIVER_QUERY - -#include <stdint.h> - -#include <map> - -#include "ignite/odbc/diagnostic/diagnosable.h" -#include "ignite/odbc/meta/column_meta.h" -#include "ignite/odbc/common_types.h" -#include "ignite/odbc/row.h" - -namespace ignite -{ - namespace odbc - { - namespace query - { - /** - * Query. - */ - class Query - { - public: - /** - * Destructor. - */ - virtual ~Query() - { - // No-op. - } - - /** - * Execute query. - * - * @return True on success. - */ - virtual SqlResult Execute() = 0; - - /** - * Fetch next result row to application buffers. - * - * @param columnBindings Application buffers to put data to. - * @return Operation result. - */ - virtual SqlResult FetchNextRow(app::ColumnBindingMap& columnBindings) = 0; - - /** - * Get data of the specified column in the result set. - * - * @param columnIdx Column index. - * @param buffer Buffer to put column data to. - * @return Operation result. - */ - virtual SqlResult GetColumn(uint16_t columnIdx, app::ApplicationDataBuffer& buffer) = 0; - - /** - * Close query. - * - * @return True on success. - */ - virtual SqlResult Close() = 0; - - /** - * Get column metadata. - * - * @return Column metadata. - */ - virtual const meta::ColumnMetaVector& GetMeta() const = 0; - - /** - * Check if data is available. - * - * @return True if data is available. - */ - virtual bool DataAvailable() const = 0; - - /** - * Get number of rows affected by the statement. - * - * @return Number of rows affected by the statement. - */ - virtual int64_t AffectedRows() const = 0; - - protected: - /** - * Constructor. - */ - Query(diagnostic::Diagnosable& diag) : - diag(diag) - { - // No-op. - } - - /** Diagnostics collector. */ - diagnostic::Diagnosable& diag; - }; - } - } -} - -#endif \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ignite/blob/e8287063/modules/platforms/cpp/odbc/odbc-driver/include/ignite/odbc/query/special_columns_query.h ---------------------------------------------------------------------- diff --git a/modules/platforms/cpp/odbc/odbc-driver/include/ignite/odbc/query/special_columns_query.h b/modules/platforms/cpp/odbc/odbc-driver/include/ignite/odbc/query/special_columns_query.h deleted file mode 100644 index f5affad..0000000 --- a/modules/platforms/cpp/odbc/odbc-driver/include/ignite/odbc/query/special_columns_query.h +++ /dev/null @@ -1,142 +0,0 @@ -/* - * 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 _IGNITE_ODBC_DRIVER_SPECIAL_COLUMNS_QUERY -#define _IGNITE_ODBC_DRIVER_SPECIAL_COLUMNS_QUERY - -#include "ignite/odbc/query/query.h" - -namespace ignite -{ - namespace odbc - { - namespace query - { - /** - * Special columns query. - */ - class SpecialColumnsQuery : public Query - { - public: - - /** - * Constructor. - * - * @param diag Diagnostics collector. - * @param catalog Catalog name. - * @param schema Schema name. - * @param table Table name. - * @param scope Minimum required scope of the rowid. - * @param nullable Determines whether to return special columns - * that can have a NULL value. - */ - SpecialColumnsQuery(diagnostic::Diagnosable& diag, int16_t type, - const std::string& catalog, const std::string& schema, - const std::string& table, int16_t scope, int16_t nullable); - - /** - * Destructor. - */ - virtual ~SpecialColumnsQuery(); - - /** - * Execute query. - * - * @return True on success. - */ - virtual SqlResult Execute(); - - /** - * Fetch next result row to application buffers. - * - * @param columnBindings Application buffers to put data to. - * @return Operation result. - */ - virtual SqlResult FetchNextRow(app::ColumnBindingMap& columnBindings); - - /** - * Get data of the specified column in the result set. - * - * @param columnIdx Column index. - * @param buffer Buffer to put column data to. - * @return Operation result. - */ - virtual SqlResult GetColumn(uint16_t columnIdx, app::ApplicationDataBuffer& buffer); - - /** - * Close query. - * - * @return True on success. - */ - virtual SqlResult Close(); - - /** - * Get column metadata. - * - * @return Column metadata. - */ - virtual const meta::ColumnMetaVector& GetMeta() const; - - /** - * Check if data is available. - * - * @return True if data is available. - */ - virtual bool DataAvailable() const; - - /** - * Get number of rows affected by the statement. - * - * @return Number of rows affected by the statement. - */ - virtual int64_t AffectedRows() const; - - private: - IGNITE_NO_COPY_ASSIGNMENT(SpecialColumnsQuery); - - /** Query type. */ - int16_t type; - - /** Catalog name. */ - std::string catalog; - - /** Schema name. */ - std::string schema; - - /** Table name. */ - std::string table; - - /** Minimum required scope of the rowid. */ - int16_t scope; - - /** - * Determines whether to return special columns that can have - * a NULL value. - */ - int16_t nullable; - - /** Query executed. */ - bool executed; - - /** Columns metadata. */ - meta::ColumnMetaVector columnsMeta; - }; - } - } -} - -#endif \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ignite/blob/e8287063/modules/platforms/cpp/odbc/odbc-driver/include/ignite/odbc/query/table_metadata_query.h ---------------------------------------------------------------------- diff --git a/modules/platforms/cpp/odbc/odbc-driver/include/ignite/odbc/query/table_metadata_query.h b/modules/platforms/cpp/odbc/odbc-driver/include/ignite/odbc/query/table_metadata_query.h deleted file mode 100644 index 1b05377..0000000 --- a/modules/platforms/cpp/odbc/odbc-driver/include/ignite/odbc/query/table_metadata_query.h +++ /dev/null @@ -1,150 +0,0 @@ -/* - * 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 _IGNITE_ODBC_DRIVER_TABLE_METADATA_QUERY -#define _IGNITE_ODBC_DRIVER_TABLE_METADATA_QUERY - -#include "ignite/odbc/query/query.h" -#include "ignite/odbc/meta/table_meta.h" - -namespace ignite -{ - namespace odbc - { - /** Connection forward-declaration. */ - class Connection; - - namespace query - { - /** - * Query. - */ - class TableMetadataQuery : public Query - { - public: - /** - * Constructor. - * - * @param diag Diagnostics collector. - * @param connection Associated connection. - * @param catalog Catalog search pattern. - * @param schema Schema search pattern. - * @param table Table search pattern. - * @param tableType Table type search pattern. - */ - TableMetadataQuery(diagnostic::Diagnosable& diag, Connection& connection, - const std::string& catalog, const std::string& schema, - const std::string& table, const std::string& tableType); - - /** - * Destructor. - */ - virtual ~TableMetadataQuery(); - - /** - * Execute query. - * - * @return True on success. - */ - virtual SqlResult Execute(); - - /** - * Get column metadata. - * - * @return Column metadata. - */ - virtual const meta::ColumnMetaVector& GetMeta() const; - - /** - * Fetch next result row to application buffers. - * - * @return Operation result. - */ - virtual SqlResult FetchNextRow(app::ColumnBindingMap& columnBindings); - - /** - * Get data of the specified column in the result set. - * - * @param columnIdx Column index. - * @param buffer Buffer to put column data to. - * @return Operation result. - */ - virtual SqlResult GetColumn(uint16_t columnIdx, app::ApplicationDataBuffer& buffer); - - /** - * Close query. - * - * @return True on success. - */ - virtual SqlResult Close(); - - /** - * Check if data is available. - * - * @return True if data is available. - */ - virtual bool DataAvailable() const; - - /** - * Get number of rows affected by the statement. - * - * @return Number of rows affected by the statement. - */ - virtual int64_t AffectedRows() const; - - private: - IGNITE_NO_COPY_ASSIGNMENT(TableMetadataQuery); - - /** - * Make get columns metadata requets and use response to set internal state. - * - * @return True on success. - */ - SqlResult MakeRequestGetTablesMeta(); - - /** Connection associated with the statement. */ - Connection& connection; - - /** Catalog search pattern. */ - std::string catalog; - - /** Schema search pattern. */ - std::string schema; - - /** Table search pattern. */ - std::string table; - - /** Table type search pattern. */ - std::string tableType; - - /** Query executed. */ - bool executed; - - /** Fetched metadata. */ - meta::TableMetaVector meta; - - /** Metadata cursor. */ - meta::TableMetaVector::iterator cursor; - - /** Columns metadata. */ - meta::ColumnMetaVector columnsMeta; - }; - } - } -} - -#endif \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ignite/blob/e8287063/modules/platforms/cpp/odbc/odbc-driver/include/ignite/odbc/query/type_info_query.h ---------------------------------------------------------------------- diff --git a/modules/platforms/cpp/odbc/odbc-driver/include/ignite/odbc/query/type_info_query.h b/modules/platforms/cpp/odbc/odbc-driver/include/ignite/odbc/query/type_info_query.h deleted file mode 100644 index ffef3e4..0000000 --- a/modules/platforms/cpp/odbc/odbc-driver/include/ignite/odbc/query/type_info_query.h +++ /dev/null @@ -1,118 +0,0 @@ -/* - * 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 _IGNITE_ODBC_DRIVER_TYPE_INFO_QUERY -#define _IGNITE_ODBC_DRIVER_TYPE_INFO_QUERY - -#include "ignite/odbc/query/query.h" - -namespace ignite -{ - namespace odbc - { - namespace query - { - /** - * Type info query. - */ - class TypeInfoQuery : public Query - { - public: - /** - * Constructor. - * - * @param diag Diagnostics collector. - * @param sqlType SQL type. - */ - TypeInfoQuery(diagnostic::Diagnosable& diag, int16_t sqlType); - - /** - * Destructor. - */ - virtual ~TypeInfoQuery(); - - /** - * Execute query. - * - * @return True on success. - */ - virtual SqlResult Execute(); - - /** - * Get column metadata. - * - * @return Column metadata. - */ - virtual const meta::ColumnMetaVector& GetMeta() const; - - /** - * Fetch next result row to application buffers. - * - * @return Operation result. - */ - virtual SqlResult FetchNextRow(app::ColumnBindingMap& columnBindings); - - /** - * Get data of the specified column in the result set. - * - * @param columnIdx Column index. - * @param buffer Buffer to put column data to. - * @return Operation result. - */ - virtual SqlResult GetColumn(uint16_t columnIdx, app::ApplicationDataBuffer& buffer); - - /** - * Close query. - * - * @return True on success. - */ - virtual SqlResult Close(); - - /** - * Check if data is available. - * - * @return True if data is available. - */ - virtual bool DataAvailable() const; - - /** - * Get number of rows affected by the statement. - * - * @return Number of rows affected by the statement. - */ - virtual int64_t AffectedRows() const; - - private: - IGNITE_NO_COPY_ASSIGNMENT(TypeInfoQuery); - - /** Columns metadata. */ - meta::ColumnMetaVector columnsMeta; - - /** Executed flag. */ - bool executed; - - /** Requested types. */ - std::vector<int8_t> types; - - /** Query cursor. */ - std::vector<int8_t>::const_iterator cursor; - }; - } - } -} - -#endif \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ignite/blob/e8287063/modules/platforms/cpp/odbc/odbc-driver/include/ignite/odbc/result_page.h ---------------------------------------------------------------------- diff --git a/modules/platforms/cpp/odbc/odbc-driver/include/ignite/odbc/result_page.h b/modules/platforms/cpp/odbc/odbc-driver/include/ignite/odbc/result_page.h deleted file mode 100644 index 5c8cac3..0000000 --- a/modules/platforms/cpp/odbc/odbc-driver/include/ignite/odbc/result_page.h +++ /dev/null @@ -1,101 +0,0 @@ -/* - * 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 _IGNITE_ODBC_DRIVER_RESULT_PAGE -#define _IGNITE_ODBC_DRIVER_RESULT_PAGE - -#include <stdint.h> - -#include <ignite/impl/binary/binary_reader_impl.h> - -#include "ignite/odbc/app/application_data_buffer.h" -#include "ignite/odbc/common_types.h" - -namespace ignite -{ - namespace odbc - { - /** - * Query result page. - */ - class ResultPage - { - enum { DEFAULT_ALLOCATED_MEMORY = 1024 }; - - public: - // Default result page size. - enum { DEFAULT_SIZE = 32 }; - - /** - * Constructor. - */ - ResultPage(); - - /** - * Destructor. - */ - ~ResultPage(); - - /** - * Read result page using provided reader. - * @param reader Reader. - */ - void Read(ignite::impl::binary::BinaryReaderImpl& reader); - - /** - * Get page size. - * @return Page size. - */ - int32_t GetSize() const - { - return size; - } - - /** - * Check if the page is last. - * @return True if the page is last. - */ - bool IsLast() const - { - return last; - } - - /** - * Get page data. - * @return Page data. - */ - ignite::impl::interop::InteropUnpooledMemory& GetData() - { - return data; - } - - private: - IGNITE_NO_COPY_ASSIGNMENT(ResultPage); - - /** Last page flag. */ - bool last; - - /** Page size in rows. */ - int32_t size; - - /** Memory that contains current row page data. */ - ignite::impl::interop::InteropUnpooledMemory data; - }; - } -} - -#endif \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ignite/blob/e8287063/modules/platforms/cpp/odbc/odbc-driver/include/ignite/odbc/row.h ---------------------------------------------------------------------- diff --git a/modules/platforms/cpp/odbc/odbc-driver/include/ignite/odbc/row.h b/modules/platforms/cpp/odbc/odbc-driver/include/ignite/odbc/row.h deleted file mode 100644 index 7673555..0000000 --- a/modules/platforms/cpp/odbc/odbc-driver/include/ignite/odbc/row.h +++ /dev/null @@ -1,132 +0,0 @@ -/* - * 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 _IGNITE_ODBC_DRIVER_ROW -#define _IGNITE_ODBC_DRIVER_ROW - -#include <stdint.h> -#include <vector> - -#include "ignite/odbc/column.h" -#include "ignite/odbc/app/application_data_buffer.h" - - -namespace ignite -{ - namespace odbc - { - /** - * Query result row. - */ - class Row - { - public: - /** - * Constructor. - */ - Row(ignite::impl::interop::InteropUnpooledMemory& pageData); - - /** - * Destructor. - */ - ~Row(); - - /** - * Get row size in columns. - * - * @return Row size. - */ - int32_t GetSize() const - { - return size; - } - - /** - * Read column data and store it in application data buffer. - * - * @param dataBuf Application data buffer. - * @return True on success. - */ - SqlResult ReadColumnToBuffer(uint16_t columnIdx, app::ApplicationDataBuffer& dataBuf); - - /** - * Move to next row. - * - * @return True on success. - */ - bool MoveToNext(); - - private: - IGNITE_NO_COPY_ASSIGNMENT(Row); - - /** - * Reinitialize row state using stream data. - * @note Stream must be positioned at the beginning of the row. - */ - void Reinit(); - - /** - * Get columns by its index. - * - * Column indexing starts at 1. - * - * @note This operation is private because it's unsafe to use: - * It is neccessary to ensure that column is discovered prior - * to calling this method using EnsureColumnDiscovered(). - * - * @param columnIdx Column index. - * @return Reference to specified column. - */ - Column& GetColumn(uint16_t columnIdx) - { - return columns[columnIdx - 1]; - } - - /** - * Ensure that column data is discovered. - * - * @param columnIdx Column index. - * @return True if the column is discovered and false if it can not - * be discovered. - */ - bool EnsureColumnDiscovered(uint16_t columnIdx); - - /** Row position in current page. */ - int32_t rowBeginPos; - - /** Current position in row. */ - int32_t pos; - - /** Row size in columns. */ - int32_t size; - - /** Memory that contains current row data. */ - ignite::impl::interop::InteropUnpooledMemory& pageData; - - /** Page data input stream. */ - ignite::impl::interop::InteropInputStream stream; - - /** Data reader. */ - ignite::impl::binary::BinaryReaderImpl reader; - - /** Columns. */ - std::vector<Column> columns; - }; - } -} - -#endif \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ignite/blob/e8287063/modules/platforms/cpp/odbc/odbc-driver/include/ignite/odbc/statement.h ---------------------------------------------------------------------- diff --git a/modules/platforms/cpp/odbc/odbc-driver/include/ignite/odbc/statement.h b/modules/platforms/cpp/odbc/odbc-driver/include/ignite/odbc/statement.h deleted file mode 100644 index bbe5da5..0000000 --- a/modules/platforms/cpp/odbc/odbc-driver/include/ignite/odbc/statement.h +++ /dev/null @@ -1,525 +0,0 @@ -/* - * 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 _IGNITE_ODBC_DRIVER_STATEMENT -#define _IGNITE_ODBC_DRIVER_STATEMENT - -#include <stdint.h> - -#include <map> -#include <memory> - -#include <ignite/impl/interop/interop_output_stream.h> -#include <ignite/impl/interop/interop_input_stream.h> -#include <ignite/impl/binary/binary_writer_impl.h> - -#include "ignite/odbc/meta/column_meta.h" -#include "ignite/odbc/meta/table_meta.h" -#include "ignite/odbc/query/query.h" -#include "ignite/odbc/app/application_data_buffer.h" -#include "ignite/odbc/app/parameter.h" -#include "ignite/odbc/diagnostic/diagnosable_adapter.h" -#include "ignite/odbc/common_types.h" -#include "ignite/odbc/cursor.h" -#include "ignite/odbc/utility.h" - -namespace ignite -{ - namespace odbc - { - class Connection; - - /** - * SQL-statement abstraction. Holds SQL query user buffers data and - * call result. - */ - class Statement : public diagnostic::DiagnosableAdapter - { - friend class Connection; - public: - /** - * Destructor. - */ - ~Statement(); - - /** - * Bind result column to specified data buffer. - * - * @param columnIdx Column index. - * @param buffer Buffer to put column data to. - */ - void BindColumn(uint16_t columnIdx, const app::ApplicationDataBuffer& buffer); - - /** - * Unbind specified column buffer. - * - * @param columnIdx Column index. - */ - void UnbindColumn(uint16_t columnIdx); - - /** - * Unbind all column buffers. - */ - void UnbindAllColumns(); - - /** - * Set column binding offset pointer. - * - * @param ptr Column binding offset pointer. - */ - void SetColumnBindOffsetPtr(size_t* ptr); - - /** - * Get column binding offset pointer. - * - * @return Column binding offset pointer. - */ - size_t* GetColumnBindOffsetPtr(); - - /** - * Get number of columns in the result set. - * - * @return Columns number. - */ - int32_t GetColumnNumber(); - - /** - * Bind parameter. - * - * @param paramIdx Parameter index. - * @param param Parameter. - */ - void BindParameter(uint16_t paramIdx, const app::Parameter& param); - - /** - * Unbind specified parameter. - * - * @param paramIdx Parameter index. - */ - void UnbindParameter(uint16_t paramIdx); - - /** - * Unbind all parameters. - */ - void UnbindAllParameters(); - - /** - * Get number of binded parameters. - * - * @return Number of binded parameters. - */ - uint16_t GetParametersNumber(); - - /** - * Set parameter binding offset pointer. - * - * @param ptr Parameter binding offset pointer. - */ - void SetParamBindOffsetPtr(size_t* ptr); - - /** - * Get parameter binding offset pointer. - * - * @return Parameter binding offset pointer. - */ - size_t* GetParamBindOffsetPtr(); - - /** - * Get value of the column in the result set. - * - * @param columnIdx Column index. - * @param buffer Buffer to put column data to. - */ - void GetColumnData(uint16_t columnIdx, app::ApplicationDataBuffer& buffer); - - /** - * Prepare SQL query. - * - * @note Only SELECT queries are supported currently. - * @param query SQL query. - */ - void PrepareSqlQuery(const std::string& query); - - /** - * Prepare SQL query. - * - * @note Only SELECT queries are supported currently. - * @param query SQL query. - * @param len Query length. - */ - void PrepareSqlQuery(const char* query, size_t len); - - /** - * Execute SQL query. - * - * @note Only SELECT queries are supported currently. - * @param query SQL query. - */ - void ExecuteSqlQuery(const std::string& query); - - /** - * Execute SQL query. - * - * @note Only SELECT queries are supported currently. - * @param query SQL query. - * @param len Query length. - */ - void ExecuteSqlQuery(const char* query, size_t len); - - /** - * Execute SQL query. - * - * @note Only SELECT queries are supported currently. - */ - void ExecuteSqlQuery(); - - /** - * Get columns metadata. - * - * @param schema Schema search pattern. - * @param table Table search pattern. - * @param column Column search pattern. - */ - void ExecuteGetColumnsMetaQuery(const std::string& schema, - const std::string& table, const std::string& column); - - /** - * Get tables metadata. - * - * @param catalog Catalog search pattern. - * @param schema Schema search pattern. - * @param table Table search pattern. - * @param tableType Table type search pattern. - */ - void ExecuteGetTablesMetaQuery(const std::string& catalog, - const std::string& schema, const std::string& table, - const std::string& tableType); - - /** - * Get foreign keys. - * - * @param primaryCatalog Primary key catalog name. - * @param primarySchema Primary key schema name. - * @param primaryTable Primary key table name. - * @param foreignCatalog Foreign key catalog name. - * @param foreignSchema Foreign key schema name. - * @param foreignTable Foreign key table name. - */ - void ExecuteGetForeignKeysQuery(const std::string& primaryCatalog, - const std::string& primarySchema, const std::string& primaryTable, - const std::string& foreignCatalog, const std::string& foreignSchema, - const std::string& foreignTable); - - /** - * Get primary keys. - * - * @param catalog Catalog name. - * @param schema Schema name. - * @param table Table name. - */ - void ExecuteGetPrimaryKeysQuery(const std::string& catalog, - const std::string& schema, const std::string& table); - - /** - * Get special columns. - * - * @param type Special column type. - * @param catalog Catalog name. - * @param schema Schema name. - * @param table Table name. - * @param scope Minimum required scope of the rowid. - * @param type Determines whether to return special columns that - * can have a NULL value. - */ - void ExecuteSpecialColumnsQuery(int16_t type, - const std::string& catalog, const std::string& schema, - const std::string& table, int16_t scope, int16_t nullable); - - /** - * Get type info. - * - * @param sqlType SQL type for which to return info or SQL_ALL_TYPES. - */ - void ExecuteGetTypeInfoQuery(int16_t sqlType); - - /** - * Close statement. - */ - void Close(); - - /** - * Fetch query result row. - */ - void FetchRow(); - - /** - * Get column metadata. - * - * @return Column metadata. - */ - const meta::ColumnMetaVector* GetMeta() const; - - /** - * Check if data is available. - * - * @return True if data is available. - */ - bool DataAvailable() const; - - /** - * Get column attribute. - * - * @param colIdx Column index. - * @param attrId Attribute ID. - * @param strbuf Buffer for string attribute value. - * @param buflen String buffer size. - * @param reslen Buffer to put resulting string length to. - * @param numbuf Numeric value buffer. - */ - void GetColumnAttribute(uint16_t colIdx, uint16_t attrId, char* strbuf, - int16_t buflen, int16_t* reslen, SqlLen* numbuf); - - /** - * Get number of rows affected by the statement. - * - * @return Number of rows affected by the statement. - */ - int64_t AffectedRows(); - - /** - * Set rows fetched buffer pointer. - * - * @param ptr Rows fetched buffer pointer. - */ - void SetRowsFetchedPtr(size_t* ptr); - - /** - * Get rows fetched buffer pointer. - * - * @return Rows fetched buffer pointer. - */ - size_t* GetRowsFetchedPtr(); - - /** - * Set row statuses array pointer. - * - * @param ptr Row statuses array pointer. - */ - void SetRowStatusesPtr(uint16_t* ptr); - - /** - * Get row statuses array pointer. - * - * @return Row statuses array pointer. - */ - uint16_t* GetRowStatusesPtr(); - - private: - IGNITE_NO_COPY_ASSIGNMENT(Statement); - - /** - * Get value of the column in the result set. - * - * @param columnIdx Column index. - * @param buffer Buffer to put column data to. - * @return Operation result. - */ - SqlResult InternalGetColumnData(uint16_t columnIdx, app::ApplicationDataBuffer& buffer); - - /** - * Close statement. - * Internal call. - * - * @return Operation result. - */ - SqlResult InternalClose(); - - /** - * Prepare SQL query. - * - * @note Only SELECT queries are supported currently. - * @param query SQL query. - * @param len Query length. - * @return Operation result. - */ - SqlResult InternalPrepareSqlQuery(const char* query, size_t len); - - /** - * Execute SQL query. - * - * @note Only SELECT queries are supported currently. - * @param query SQL query. - * @param len Query length. - * @return Operation result. - */ - SqlResult InternalExecuteSqlQuery(const char* query, size_t len); - - /** - * Execute SQL query. - * - * @note Only SELECT queries are supported currently. - * @return Operation result. - */ - SqlResult InternalExecuteSqlQuery(); - - /** - * Fetch query result row. - * - * @return Operation result. - */ - SqlResult InternalFetchRow(); - - /** - * Get number of columns in the result set. - * - * @param res Columns number. - * @return Operation result. - */ - SqlResult InternalGetColumnNumber(int32_t &res); - - /** - * Get columns metadata. - * - * @param schema Schema search pattern. - * @param table Table search pattern. - * @param column Column search pattern. - * @return Operation result. - */ - SqlResult InternalExecuteGetColumnsMetaQuery(const std::string& schema, - const std::string& table, const std::string& column); - - /** - * Get tables metadata. - * - * @param catalog Catalog search pattern. - * @param schema Schema search pattern. - * @param table Table search pattern. - * @param tableType Table type search pattern. - * @return Operation result. - */ - SqlResult InternalExecuteGetTablesMetaQuery(const std::string& catalog, - const std::string& schema, const std::string& table, - const std::string& tableType); - - /** - * Get foreign keys. - * - * @param primaryCatalog Primary key catalog name. - * @param primarySchema Primary key schema name. - * @param primaryTable Primary key table name. - * @param foreignCatalog Foreign key catalog name. - * @param foreignSchema Foreign key schema name. - * @param foreignTable Foreign key table name. - * @return Operation result. - */ - SqlResult InternalExecuteGetForeignKeysQuery(const std::string& primaryCatalog, - const std::string& primarySchema, const std::string& primaryTable, - const std::string& foreignCatalog, const std::string& foreignSchema, - const std::string& foreignTable); - - /** - * Get primary keys. - * - * @param catalog Catalog name. - * @param schema Schema name. - * @param table Table name. - * @return Operation result. - */ - SqlResult InternalExecuteGetPrimaryKeysQuery(const std::string& catalog, - const std::string& schema, const std::string& table); - - /** - * Get special columns. - * - * @param type Special column type. - * @param catalog Catalog name. - * @param schema Schema name. - * @param table Table name. - * @param scope Minimum required scope of the rowid. - * @param nullable Determines whether to return special columns - * that can have a NULL value. - * @return Operation result. - */ - SqlResult InternalExecuteSpecialColumnsQuery(int16_t type, - const std::string& catalog, const std::string& schema, - const std::string& table, int16_t scope, int16_t nullable); - - /** - * Get type info. - * - * @param sqlType SQL type for which to return info or SQL_ALL_TYPES. - */ - SqlResult InternalExecuteGetTypeInfoQuery(int16_t sqlType); - - /** - * Get column attribute. - * - * @param colIdx Column index. - * @param attrId Attribute ID. - * @param strbuf Buffer for string attribute value. - * @param buflen String buffer size. - * @param reslen Buffer to put resulting string length to. - * @param numbuf Numeric value buffer. - * @return Operation result. - */ - SqlResult InternalGetColumnAttribute(uint16_t colIdx, uint16_t attrId, - char* strbuf, int16_t buflen, int16_t* reslen, SqlLen* numbuf); - - /** - * Get number of rows affected by the statement. - * - * @param rowCnt Number of rows affected by the statement. - * @return Operation result. - */ - SqlResult InternalAffectedRows(int64_t& rowCnt); - - /** - * Constructor. - * Called by friend classes. - * - * @param parent Connection associated with the statement. - */ - Statement(Connection& parent); - - /** Connection associated with the statement. */ - Connection& connection; - - /** Column bindings. */ - app::ColumnBindingMap columnBindings; - - /** Parameter bindings. */ - app::ParameterBindingMap paramBindings; - - /** Underlying query. */ - std::auto_ptr<query::Query> currentQuery; - - /** Buffer to store number of rows fetched by the last fetch. */ - size_t* rowsFetched; - - /** Array to store statuses of rows fetched by the last fetch. */ - uint16_t* rowStatuses; - - /** Offset added to pointers to change binding of parameters. */ - size_t* paramBindOffset; - - /* Offset added to pointers to change binding of column data. */ - size_t* columnBindOffset; - }; - } -} - -#endif \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ignite/blob/e8287063/modules/platforms/cpp/odbc/odbc-driver/include/ignite/odbc/system/odbc_constants.h ---------------------------------------------------------------------- diff --git a/modules/platforms/cpp/odbc/odbc-driver/include/ignite/odbc/system/odbc_constants.h b/modules/platforms/cpp/odbc/odbc-driver/include/ignite/odbc/system/odbc_constants.h deleted file mode 100644 index 0262be5..0000000 --- a/modules/platforms/cpp/odbc/odbc-driver/include/ignite/odbc/system/odbc_constants.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * 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 _IGNITE_ODBC_DRIVER_ODBC_CONSTANTS -#define _IGNITE_ODBC_DRIVER_ODBC_CONSTANTS - -#ifdef _WIN32 - -#define _WINSOCKAPI_ -#include <windows.h> - -#ifdef min -# undef min -#endif // min - -#ifdef GetMessage -# undef GetMessage -#endif // GetMessage - -#endif //_WIN32 - -#define ODBCVER 0x0380 - -#include <sqlext.h> -#include <odbcinst.h> - -#ifndef UNREFERENCED_PARAMETER -#define UNREFERENCED_PARAMETER(x) (void)(x) -#endif // UNREFERENCED_PARAMETER - -#endif //_IGNITE_ODBC_DRIVER_ODBC_CONSTANTS
