-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[AD-490] Add performance test. #15
Conversation
|
There are multiple sugegstions/warnings/errors found by SonarLint, please use SonarLint to inspect and fix the warnings/errors. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
some comments but lgtm!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
minor nits.
Did you double checked with Alexey about importing the csv_ headers files from other repo. if the license are ok.
If you have the repo add to the notice as well. It is easier to keep track of it
…rror. Replace NULL with nullptr.
* Add performance test. * Replace include header odbcinst.h with odbc_constants.h. * Revert header file odbc_constant.h to odbcinst.h. * Include odbcinst.h for windows only. * Revert: include odbcinst.h for windows only. * Update performance test cmake file to include ODBC_INCLUDE_DIRS. * Update performance test cmake file to find package ODBC REQUIRED. * Fix error in performance_test_runner.cpp. * Link to performance test to odbc library in cmake file. * Link performance test to odbc library for windows. * Update checks.yml to continue on error. * Change PerformanceTests to tests. * Change PerformanceTests to tests in file performance_test_runner.h. * Update Java installation instructions. * Update comments. * Deallocate env, stmt, conn handles in functions when no longer needed. * Restructure perf test folder (lib, include, src sub directories created). * Rename 'it_odbc_helper.(h,cpp)' to 'performance_odbc_helper.(h,cpp)'. * Add new line at end of file. * Deallocate conn, env, stmt handles appropriately. Capitilize first letter of function names. * Update perf test documentation. * Use cmake latest for windows build. * Remove dsn_config.cpp from mac builds. * Attempt to fix mac build error. * Revert: Attempt to fix mac build error. * 2nd attempt to fix mac build error. * Attempt to fix macos build. * Attempt to fix macos build. * Attempt to fix macos build. * Attempt to fix macos build. * Include link to csv parser github repo in NOTICE file. * Add newline at EOF. * Remove try catch blocks for catching all errors and rethrowing same error. Replace NULL with nullptr. * Revert name change for CSV parser NOTICE file back to LICENSE file.
* add to use in the build and link mongo cpp driver * moving changes to network lib * [AD-516] * Defined NOMINMAX to disable turning min()/max() into macros to avoid conflict with MONGOCXX library. * [AD-516] * Defined NOMINMAX to disable turning min()/max() into macros to avoid conflict with MONGOCXX library. * moving implementation to connection.cpp adjusting odbc cmakelist * fixing mac build * fixing windows x86 workflow * editing cmakelist * set cmake standard 11 * fixing mac build * Code refactoring * fix compilation error * adding sshtunnelport placeholder * fixing connection string * fixing test and githubaction * fixing git hub actions * fixing connection port * fixing mac build * trying to fix ssh tunnel in github actions * fixing github action ssh tunnel * fixing github action * fixing windows build * fixing windows buld * fixing connection string * removing trace * build error * install cert in windows build * fixing external ssh tunnel windows build * testing not importing certificate * fixing mac build * removing install cert on windows * fixing windows build * fix win 32 bit * adapting test and clean up cmakelist file * fixing windows build * fixing return * fixing windows build * fixing mac build * fixing cpp connection string * fixing reading certificate * debugging mac build * fixing mac build * fixing memory access * fixing windows memory access * fixing connection string * fixing connection uri and instance ptr * fixing merge connection string * refactoring fixing mongo instance happen more than once * fixing mac run test error * cmakelist cleanup * [AD-521] Updated JDBC driver version. (#19) ### Summary [AD-521] Updated JDBC driver version. ### Description * Updated JDBC driver version to 1.1.1 ### Related Issue https://bitquill.atlassian.net/browse/AD-521 * [AD-490] Add performance test. (#15) * Add performance test. * Replace include header odbcinst.h with odbc_constants.h. * Revert header file odbc_constant.h to odbcinst.h. * Include odbcinst.h for windows only. * Revert: include odbcinst.h for windows only. * Update performance test cmake file to include ODBC_INCLUDE_DIRS. * Update performance test cmake file to find package ODBC REQUIRED. * Fix error in performance_test_runner.cpp. * Link to performance test to odbc library in cmake file. * Link performance test to odbc library for windows. * Update checks.yml to continue on error. * Change PerformanceTests to tests. * Change PerformanceTests to tests in file performance_test_runner.h. * Update Java installation instructions. * Update comments. * Deallocate env, stmt, conn handles in functions when no longer needed. * Restructure perf test folder (lib, include, src sub directories created). * Rename 'it_odbc_helper.(h,cpp)' to 'performance_odbc_helper.(h,cpp)'. * Add new line at end of file. * Deallocate conn, env, stmt handles appropriately. Capitilize first letter of function names. * Update perf test documentation. * Use cmake latest for windows build. * Remove dsn_config.cpp from mac builds. * Attempt to fix mac build error. * Revert: Attempt to fix mac build error. * 2nd attempt to fix mac build error. * Attempt to fix macos build. * Attempt to fix macos build. * Attempt to fix macos build. * Attempt to fix macos build. * Include link to csv parser github repo in NOTICE file. * Add newline at EOF. * Remove try catch blocks for catching all errors and rethrowing same error. Replace NULL with nullptr. * Revert name change for CSV parser NOTICE file back to LICENSE file. * [AD-521] Updated JDBC driver version - part 2. (#20) ### Summary [AD-521] Updated JDBC driver version - part 2. ### Description Add update to 2 YAML files that it picks it up in GitHub workflow. ### Related Issue https://bitquill.atlassian.net/browse/AD-521 * Update CMakeLists.txt Removing changes from networklib * WIP - Add building jdbc connection string from config * reverting dummy_test changing boost link on odbc_test * [AD-523] Internal SSH tunnel tests passing again but more tests needed * Adjust tests - all tests passing again but need to add more * minor refactoring, added error handling integrated with ssh internal tunnel feature * fixing nits * removing unecessary changes extracting get ssh tunnel port to its own method * removing extra line * changing parameters ordering * changing some names * Add tests * Remove unintended changes * Add additional tests * Revert "Merge branch 'affonsov/ad-516/mongocpp-tracercode' into andiem/ad-523/integrate_dsn_settings" This reverts commit 6d3fc50, reversing changes made to a399cdc. * Revert merge with mongocpp tracer code * Add ssh tunnel to github workflows * Fix mac build errros * Fix mac build errors * Improvements from code review * Remove unecessary change * Fix unit tests * Add ssh tunnel instructions to readme Co-authored-by: affonsov <[email protected]> Co-authored-by: Bruce Irschick <[email protected]> Co-authored-by: Gary Atwal <[email protected]> Co-authored-by: affonsoBQ <[email protected]>
* [AD-522] resolve build errors after merge * fix bug for schema name not correctly loaded on the config window * removed unnecessary headers * [AD-427] Added ResultSet.next and ResultSet.GetString() * [AD-522] address code review comments * change to enum class type for read_preference.h and scan_method.h * change the way enum class objects are read * add static cast to enum types so SetSelection function can work with it * refactor - removed unnecessary comments * refactor - changes code doc in connection_string_parser.h * [AD-521] implement tests for JNI wrapper code * test for TestDocumentDbConnectionGetSshTunnelPortSshTunnelNotActive is not yet active, need to be enabled when we can get external SSH tunnel working. * bug fix: re-implemented DocumentDbConnectionGetSshLocalPort and DocumentDbConnectionIsSshTunnelActive. connection.Get()->GetRef() is passed as first parameter because jobject is required for CallIntMethod and CallBooleanMethod. * better JNI wrapper code is needed in the future so warnings/errors pop up when we pass jobject instead of jclass to the methods. * [AD-521] refactor - remove comments and commented out code * fixing connection uri and instance ptr * fixing merge connection string * refactoring fixing mongo instance happen more than once * [AD-589] implement JNI method call for GetDatabaseMetadata * define the method constant for DocumentDbConnection.getDatabaseMetadata() * create JNI wrapper function for DocumentDbConnection.getMetaData * [AD-589] implement unit test for DocumentDbConnection.getMetaData * fixing mac run test error * [AD-521] add calls to AutoCloseConnection in unit tests * pass & errInfo instead of * errInfo in DocumentDbConnectionGetSshLocalPort and DocumentDbConnectionIsSshTunnelActive. * [AD-521] remove unnecessary comment * [AD-589] fix merge issues * I missed this part of code when I was resolving the merge conflicts. Now they are corrected * [AD-589] update getMetaData JNI wrapper code to pass &errInfo * implement unit test for getMetaData * [AD-589] implement JNI wrapper for DocumentDbDatabaseSchemaMetadataGetSchemaName * implement Java class for * define constant for DocumentDbDatabaseSchemaMetadataGetSchemaName * add empty test function for TestDocumentDbDatabaseSchemaMetadataGetSchemaName * [AD-589] implement unit test for DbDatabaseSchemaMetadataGetSchemaName * cmakelist cleanup * [AD-521] Updated JDBC driver version. (#19) ### Summary [AD-521] Updated JDBC driver version. ### Description * Updated JDBC driver version to 1.1.1 ### Related Issue https://bitquill.atlassian.net/browse/AD-521 * [AD-490] Add performance test. (#15) * Add performance test. * Replace include header odbcinst.h with odbc_constants.h. * Revert header file odbc_constant.h to odbcinst.h. * Include odbcinst.h for windows only. * Revert: include odbcinst.h for windows only. * Update performance test cmake file to include ODBC_INCLUDE_DIRS. * Update performance test cmake file to find package ODBC REQUIRED. * Fix error in performance_test_runner.cpp. * Link to performance test to odbc library in cmake file. * Link performance test to odbc library for windows. * Update checks.yml to continue on error. * Change PerformanceTests to tests. * Change PerformanceTests to tests in file performance_test_runner.h. * Update Java installation instructions. * Update comments. * Deallocate env, stmt, conn handles in functions when no longer needed. * Restructure perf test folder (lib, include, src sub directories created). * Rename 'it_odbc_helper.(h,cpp)' to 'performance_odbc_helper.(h,cpp)'. * Add new line at end of file. * Deallocate conn, env, stmt handles appropriately. Capitilize first letter of function names. * Update perf test documentation. * Use cmake latest for windows build. * Remove dsn_config.cpp from mac builds. * Attempt to fix mac build error. * Revert: Attempt to fix mac build error. * 2nd attempt to fix mac build error. * Attempt to fix macos build. * Attempt to fix macos build. * Attempt to fix macos build. * Attempt to fix macos build. * Include link to csv parser github repo in NOTICE file. * Add newline at EOF. * Remove try catch blocks for catching all errors and rethrowing same error. Replace NULL with nullptr. * Revert name change for CSV parser NOTICE file back to LICENSE file. * [AD-521] Updated JDBC driver version - part 2. (#20) ### Summary [AD-521] Updated JDBC driver version - part 2. ### Description Add update to 2 YAML files that it picks it up in GitHub workflow. ### Related Issue https://bitquill.atlassian.net/browse/AD-521 * Update CMakeLists.txt Removing changes from networklib * WIP - Add building jdbc connection string from config * [AD-521] refactor - change case of ssh to SSH for consistency * reverting dummy_test changing boost link on odbc_test * [AD-589] address code review comments * rename DocumentDbConnectionGetMetaData to DocumentDbConnectionGetDatabaseMetaData * [AD-589] change case from MetaData to Metadata to match Java method name * [AD-543] JNI wrapper code for DatabaseMetaDataGetColumns * [AD-543] unit test for DatabaseMetaData.getColumns looks at: * TABLE_CAT, TABLE_SCHEM, TABLE_NAME, COLUMN_NAME, ORDINAL_POSITION * [AD-523] Internal SSH tunnel tests passing again but more tests needed * Adjust tests - all tests passing again but need to add more * minor refactoring, added error handling integrated with ssh internal tunnel feature * [AD-543] implement ResultSetGetShort * JNI wrapper code for both getShortByIndex and getShortByName methods from resultSet class are implemented * [AD-589] refactor: change from metaData to metadata changes occurred in: * DocumentDbConnectionGetDatabaseMetadata * DocumentDbDatabaseSchemaMetadataGetSchemaName * TestDocumentDbConnectionGetDatabaseMetadata * TestDocumentDbDatabaseSchemaMetadataGetSchemaName * fixing nits * removing unecessary changes extracting get ssh tunnel port to its own method * removing extra line * [AD-543] implement ResultSet.getRow() Jni wrapper code * this function is for getting the number of rows in the resultSet. The row number on the last row would be the size of the resultSet * unit test included by calling getRow in TestDatabaseMetaDataGetTables and TestDatabaseMetaDataGetColumns * [AD-543] implement unit test for getShort function * [AD-543] Define different enum types * changing parameters ordering * changing some names * Add tests * [AD-543] update clang format * [AD-543] change format for column_meta.h to comply with Google style * [AD-543] update draft code * change ReadColumnMetaVector function to receive a resultSet object instead of original ignite parameters * [AD-543] change format for column_meta.h to comply with Google style on more files * [AD-543] formatting change * [AD-543] adapt ColumnsMetaQuery to accept catalog as a parameter Functions affected: * ColumnMetadataQuery * ExecuteGetColumnsMetaQuery * InternalExecuteGetColumnsMetaQuery Reason for change: since the JNI call to getColumns accepts catalog as a parameter, it is required for those 3 functions to essentially pass catalog as a parameter as well, even though the JDBC driver doesn't actually deal with the value of catalog. JNI call is to be implemented in later commits. * [AD-543] format change on column_meta.cpp * [AD-543] remove JNI wrapper code for getShort and its unit test reason: getShort JNI wrapper method call was implemented with the intent to use it for column metadata value SOURCE_DATA_TYPE (for getting the column metadata from the resultSet returned by getColumns), which is a short. However, ODBC driver does not need SOURCE_DATA_TYPE, thus getShort is of no use to JDBC at this point and should be removed. * [AD-543] remove unneeded JDBC enum values * those values will not be needed in ODBC * [AD-543] update formatting of column_metadata_query.cpp * [AD-543] add skeleton code for getColumn * Remove unintended changes * Add additional tests * Revert "Merge branch 'affonsov/ad-516/mongocpp-tracercode' into andiem/ad-523/integrate_dsn_settings" This reverts commit 6d3fc50, reversing changes made to a399cdc. * [AD-543] add JDBC types to ODBC * the values are copied from the JdbcType Enum class in JdbcTye.java file in DocumentDB JDBC driver codebase * [AD-543] implement BinaryToSqlType function to switch on JDBC type values * Revert merge with mongocpp tracer code * [AD-543] build error fix: change JDBC type from int8_t to int16_t * some of the values of JDBC Type (e.g.,2009, 2012) would overflow if the value is int8_t. * return type for function SqlTypeToBinary (which returns JDBC type) is changed to int16_t as well * [AD-543] add catalog as parameter to ExecuteGetColumnsMetaQuery * Add ssh tunnel to github workflows * [AD-543] fix build errors on git remote * calls ReadColumnMetaVector with 2 arguments instead of 3 * define ReadColumnMetaVector function * [AD-543] make SqlTypeToBinary return int16_t instead * Update .clang-format change indent width and tab width back to 4 * Fix mac build errros * [AD-543] make ReadOnSuccess accept resultSet as a parameter * Fix mac build errors * [AD-543] make BinaryToSqlType accept int16_t as parameter because JDBC binary types are int16_t * [AD-543] construct resultSet global object in MakeRequestGetColumnsMeta * [AD-543] implement SqlToBinaryType function * default return type is Jdbc binary * make function return inside the switch statement to make it consistent with other functions in type_traits name space * [AD-543] in BinaryToSqlType, map Jdbc type ROWID to SQL binary * map JDBC numeric to SQL numeric * and refactor changes: remove white space * [AD-543] update IsSqlTypeSupported to align with SqlToBinaryType function * some reordering occurred to match the ordering of SqlToBinaryType function * SQL_REAL and SQL_NUMERIC become supported, but SQL_GUID is no longer supported * [AD-543] update BinaryTypeToSqlTypeName parameter type from int8_t to int16_t * [AD-543] implement BinaryTypeToSqlTypeName * [AD-543] map Jdbc type VARBINARY to SQL_BINARY in BinaryToSqlType * [AD-543] refactor: move comment to show ignite original code * [AD-543] define SqlTypeName constants * added constants: REAL, NUMERIC, LONGVARCHAR, LONGVARBINARY, SQL_NULL * [AD-543] update SqlTypeColumnSize * added case for SQL NULL type (return 1) * [AD-543] replace Ignite type constants with Documentdb Jdbc type constants in type_info_query.cpp * [AD-543] update SqlTypeTransferLength * added case for SQL NULL type (return 1) * [AD-543] remove redundant return statement in BinaryTypeToSqlTypeName * update SqlTypeDisplaySize * added case for SQL NULL type (return 1) * [AD-543] implement BinaryTypeColumnSize to adapt Jdbc column_size mapping * [AD-543] move using namespace statement to be global instead of inside local functions * [AD-543] mark sql tinyint type as unsigned * previously in Ignite, boolean False (which stands for the type being signed) is returned for SQL tinyint type. However, tinyint has value range (0,255), so it is in fact unsigned * [AD-543] add documentation warnings * warnings for syncing JDBC type values on the ODBC when any changes occur on the JDBC side. * [AD-543] update functions to match Bruce's (AD-594) changes * make ResultSetGetRow and ResultSetGetColumns return JniErrorCode instead of boolean * [AD-543] refactor ResultSetGetColumns function * [AD-543] update java_test to check JniErrorCode * [AD-543] adapt BinaryTypeColumnSize * SQL_DESC_LENGTH is returned for SQL character types * removed JDBC type mapping to column size because that was not needed * [AD-543] update SqlTypeColumnSize and SqlTypeTransferLength * group SQL_LONGVARCHAR with other character types * comment out the return of SQL_DESC_LENGTH in SqlTypeColumnSize because unsure what to return at this point. See comment. * comment out the return of SQL_DESC_OCTET_LENGTH in SqlTypeTransferLength because unsure what to return at this point. See comment. * [AD-543] return false for case SQL_TINYINT in SqlTypeUnsigned * [AD-543] update SqlTypeDisplaySize * group SQL_LONGVARCHAR with other character types * Improvements from code review * Remove unecessary change * [AD-543] change parameter type from int8_t to int16_t * Fix unit tests * Add ssh tunnel instructions to readme * [AD-543] remove comments * commented out code removed in type_traits namespace * [AD-543] change dataType parameter to int16_t * [AD-543] remove todo comments * [AD-543] remove or comment out code in message.cpp code that is removed/commented out: * ReadOnSuccess function. Reason: we don't have a reason to check if the read is successful with our current implementation. * QueryGetColumnsMetaResponse class. * [AD-543] adapt MakeRequestGetColumnsMeta * define GetColumn function * change the type of connection from SharedPointer object back to Connection object * [AD-543] remove comments in MakeRequestGetColumnsMeta * [AD-543] change connection object type in function header * Connection type should be the type for connection * [AD-543] replace Ignite type constants with DocDb type constants * [AD-543] add header files to include * [AD-543] remove columnsResultSet from statement.h * [AD-543] change parameter type in type_traits change parameter type from int8_t to int16_t for functions that accept the binary type, since DocDb Jdbc type constants are int16_t * [AD-543] implement NullabiltyToIsNullable * NullabiltyToIsNullable receives a nullablility value and returns a string. * call GetNullability in column_metadata_query because nullability would be saved * [AD-543] bugfix in MakeRequestGetColumnsMeta * call ReadColumnMetaVector instead of ReadTableMetaVector in MakeRequestGetColumnsMeta * implement ReadColumnMetaVector using ReadTableMetaVector as example * [AD-543] implement BinaryTypeCharOctetLength * for charOctetLength, the maximum length in bytes of a character or binary data type column. For all other data types, this column returns a NULL. * [AD-543] bugfix GetColumns * refactor: parameter name changed from column to coulmnNamePattern * fix typo * [AD-543] bugfix linking error * [AD-543] bugfix linking error * since the definition of the function is removed, the header file should also be gone * [AD-543] bugfix linking error * corrected function header to match the header in column_meta.h * [AD-543] implement getRemarks for column_meta * [AD-543] adapt Read function in column_meta * [AD-543] bugfix java.h header * change code to match header in java.cpp * [AD-543] bugfix: change data type update dataType to int16_t to match DocDb Jdbc Type constnats in binary_common.h * [AD-523] add using statement * add using statement for ignite::common::EncodeURIComponent. * [AD-543] add todo comment for datetime sub code * [AD-543] save ORDINAL_POSITION * GetOrdinalPosition implemented * meta::Read function is modified to accept previously recorded ordinal position as a parameter * Read function now reads ORDINAL_POSITION value from resultSet * [AD-543] add jira link for todo in comment * the link for implementing BinaryTypeDateTimeSub is added * [AD-543] refactor * [AD-543] update todo comments * added jira link for AD-615 * removed finished todo * [AD-543] save catalogName * GetCatalogName implemented * Read function now reads TABLE_CAT value from resultSet * [AD-543] add documentation for parameters in Read * [AD-543] save columnDef * GetColumnDef implemented * Read function now reads COLUMN_DEF value from resultSet * [AD-543] remove finished todo comment * [AD-543] save values in copy constructor and copy operator * add cataloName, columnDef, and ordinalPosition to be copied in the ColumnMeta copy constructor and copy operator * [AD-543] remove comments * removed commented out code * remove todo statement for making Jdbc type definition into a enum. That can be done in future tasks * [AD-543] remove comments * removed commented out code * [AD-543] replace Ignite type with Jdbc type * change occurred in table_metadata_query.cpp * [AD-543] * Added tests for getColumns and SQLColumns. * [AD-543] update columnsMeta * added COLUMN_DEF, SQL_DATA_TYPE, SQL_DATETIME_SUB, CHAR_OCTET_LENGTH, ORDINAL_POSITION to columnsMeta * reformatted push_back code calls for consistency * columnsMeta is a meta::ColumnMeta object that stores the metadata for the column metadata * [AD-543] add comments * the comments will be removed in later commits. However, I wanted to push it to keep a record * [AD-543] remove comments and commented out code * [AD-543] remove todo comments and code comment * [AD-543] implement unit tests * implement TestGetDataWithColumnsReturnsNone * implement TestGetDataWithColumnsReturnsMany * [AD-543] remove comments * [AD-543] refactor * [AD-543] * Improved test for SQLColumns. * [AD-543] * Improved test for SQLColumns. * [AD-543] remove unneeded comment * [AD-543] * Improved test for SQLColumns. * [AD-543] * Improved test for SQLColumns. * [AD-543] * Improved test for SQLColumns. * [AD-543] code review fix * replace DOCUMENTDB_JDBC_TYPE* with JDBC_TYPE_* * [AD-543] bugfix - copy dataType value * [AD-543] resolve NumPrecRadix test error * make SqlTypeNumPrecRadix return -1 on default, so that a null would be put in the buffer if num_prec_radix does not apply to the column, and the meta query test would pass. * [AD-543] reduce warning * initialize ordinalPosition variable * [AD-543] update meta_queries_test * SQL_NO_TOTAL is expected for column size, buffer length, and char octet length * [AD-543] Bugfix meta_queries_test * change buffer length type to SQL_INTEGER in the SQLBindCol function call * sql_data_type should have the same values as data_type * [AD-543] address code review comments * comment changes * typo fix * remove const as return type for NullabilityToIsNullable * [AD-543] code review change * add src/odbc/include/ignite/impl/binary/binary_common.h * modify include statements: replace include of ignite/impl/binary/binary_common.h with ignite/odbc/impl/binary/binary_common.h * [AD-543] add binary_common file under odbc and add include statements * [AD-543] copy impl/binary and impl/interop * some files are modified to be under ODBC namespace, and some files haven't been modified * [AD-543] remove odbc/binary folder * it was a mistake an unnecessary * [AD-543] refactor - format files in odbc/impl/binary * change the namespace from ignite::impl to ignite::odbc::impl * [AD-543] refactor - format files in odbc/impl/interop * change the namespace from ignite::impl to ignite::odbc::impl * [AD-543] remove binary_type_impl because it is not required * [AD-543] update files to look into ignite::odbc namespace * Revert "[AD-543] remove binary_type_impl because it is not required" This reverts commit 819a99b. * [AD-543] remove include from jni_test * removed ignite::impl::binary namespace because it is not needed * [AD-543] copy binary_type file into odbc namespace * [AD-543] refactor include statements into odbc namespace * [AD-543] refactor namespace to be under odbc * [AD-543] refactor changes * [AD-543] refactor changes * [AD-543] refactor - copy files * copy binary/ files that are included in binary_reader_impl.h to odbc/ * [AD-543] refactor copied binary/ files * refactor the files to be under odbc namespace * [AD-543] refactor binary_reader_impl.h * [AD-543] refactor -> copy files * copy ignite/ files that are included in binary_reader_impl.h to ignite/odbc/ * [AD-543] refactor copied ignite/ files * refactor the files to be under odbc namespace * refactor document of odbc/binary/ files * [AD-543] update include statements to include files under odbc * [AD-543] copy ignite/binary/ files to ignite/odbc/binary/ * [AD-543] refactor copied ignite/binary/ files * refactor the files to be under odbc namespace * [AD-543] remove reference to namespace ignite::impl::binary * [AD-543] copy ignite/binary files to ignite/odbc/binary * [AD-543] refactor copied ignite/binary/ files * refactor the files to be under odbc namespace * [AD-543] code change from code review comment * [AD-543] change odbc files to use odbc namespace * [AD-543] refactor * update include statements to be in odbc namespace * [AD-543] refactor changes * [AD-543] copy .cpp files to odbc folder * [AD-543] refactor copied files * refactor the files to be under odbc namespace * [AD-543] refactor objects under odbc space * [AD-543] add using statement * reason: on GitHub Actions, errors show when the complier thinks ignite::IgniteError is used instead of ignite::odbc::IgniteError. * [AD-543] refactor include statements * refactored to include header files from odbc/binary_common.h * refactored ignite::impl to ignite:odbc::impl * [AD-543] refactor changes * add using odbc namespace statements * [AD-543] modify cmakelist * included newly copied .cpp files * [AD-543] refactor column_test * [AD-543] refactor changes * [AD-543] address code review comments * add new line at end of file * move { to be on the same line * [AD-543] fix typo in test names * [AD-543] address code review comments * [AD-543] address code review comment * simply to nullptr * [AD-543] improvement from code review * [AD-543] change SQL_FLOAT back to 4 bytes * [AD-543] simplify resultSet object creation * [AD-543] indicate nullability property * changed ColumnMeta constructor to include nullability as a parameter. * nullability property is implemented in column_metadata_query.cpp and table_metadata_query.cpp. * issue AD-626 created for indicating the nullability in files type_info_query.cpp, special_coulmns_query.cpp, primary_keys_query.cpp, and foreign_keys_query.cpp: https://bitquill.atlassian.net/browse/AD-626 * [AD-543] improvements from code review comments * change nullability to NO_NULL for TABLE_NAME and TABLE_TYPE * [AD-543] refactor from code review comments Co-authored-by: Andie Montoya <[email protected]> Co-authored-by: Bruce Irschick <[email protected]> Co-authored-by: Affonso Vieira <[email protected]> Co-authored-by: Gary Atwal <[email protected]>
* Add performance test. * Replace include header odbcinst.h with odbc_constants.h. * Revert header file odbc_constant.h to odbcinst.h. * Include odbcinst.h for windows only. * Revert: include odbcinst.h for windows only. * Update performance test cmake file to include ODBC_INCLUDE_DIRS. * Update performance test cmake file to find package ODBC REQUIRED. * Fix error in performance_test_runner.cpp. * Link to performance test to odbc library in cmake file. * Link performance test to odbc library for windows. * Update checks.yml to continue on error. * Change PerformanceTests to tests. * Change PerformanceTests to tests in file performance_test_runner.h. * Update Java installation instructions. * Update comments. * Deallocate env, stmt, conn handles in functions when no longer needed. * Restructure perf test folder (lib, include, src sub directories created). * Rename 'it_odbc_helper.(h,cpp)' to 'performance_odbc_helper.(h,cpp)'. * Add new line at end of file. * Deallocate conn, env, stmt handles appropriately. Capitilize first letter of function names. * Update perf test documentation. * Use cmake latest for windows build. * Remove dsn_config.cpp from mac builds. * Attempt to fix mac build error. * Revert: Attempt to fix mac build error. * 2nd attempt to fix mac build error. * Attempt to fix macos build. * Attempt to fix macos build. * Attempt to fix macos build. * Attempt to fix macos build. * Include link to csv parser github repo in NOTICE file. * Add newline at EOF. * Remove try catch blocks for catching all errors and rethrowing same error. Replace NULL with nullptr. * Revert name change for CSV parser NOTICE file back to LICENSE file.
* add to use in the build and link mongo cpp driver * moving changes to network lib * [AD-516] * Defined NOMINMAX to disable turning min()/max() into macros to avoid conflict with MONGOCXX library. * [AD-516] * Defined NOMINMAX to disable turning min()/max() into macros to avoid conflict with MONGOCXX library. * moving implementation to connection.cpp adjusting odbc cmakelist * fixing mac build * fixing windows x86 workflow * editing cmakelist * set cmake standard 11 * fixing mac build * Code refactoring * fix compilation error * adding sshtunnelport placeholder * fixing connection string * fixing test and githubaction * fixing git hub actions * fixing connection port * fixing mac build * trying to fix ssh tunnel in github actions * fixing github action ssh tunnel * fixing github action * fixing windows build * fixing windows buld * fixing connection string * removing trace * build error * install cert in windows build * fixing external ssh tunnel windows build * testing not importing certificate * fixing mac build * removing install cert on windows * fixing windows build * fix win 32 bit * adapting test and clean up cmakelist file * fixing windows build * fixing return * fixing windows build * fixing mac build * fixing cpp connection string * fixing reading certificate * debugging mac build * fixing mac build * fixing memory access * fixing windows memory access * fixing connection string * fixing connection uri and instance ptr * fixing merge connection string * refactoring fixing mongo instance happen more than once * fixing mac run test error * cmakelist cleanup * [AD-521] Updated JDBC driver version. (#19) ### Summary [AD-521] Updated JDBC driver version. ### Description * Updated JDBC driver version to 1.1.1 ### Related Issue https://bitquill.atlassian.net/browse/AD-521 * [AD-490] Add performance test. (#15) * Add performance test. * Replace include header odbcinst.h with odbc_constants.h. * Revert header file odbc_constant.h to odbcinst.h. * Include odbcinst.h for windows only. * Revert: include odbcinst.h for windows only. * Update performance test cmake file to include ODBC_INCLUDE_DIRS. * Update performance test cmake file to find package ODBC REQUIRED. * Fix error in performance_test_runner.cpp. * Link to performance test to odbc library in cmake file. * Link performance test to odbc library for windows. * Update checks.yml to continue on error. * Change PerformanceTests to tests. * Change PerformanceTests to tests in file performance_test_runner.h. * Update Java installation instructions. * Update comments. * Deallocate env, stmt, conn handles in functions when no longer needed. * Restructure perf test folder (lib, include, src sub directories created). * Rename 'it_odbc_helper.(h,cpp)' to 'performance_odbc_helper.(h,cpp)'. * Add new line at end of file. * Deallocate conn, env, stmt handles appropriately. Capitilize first letter of function names. * Update perf test documentation. * Use cmake latest for windows build. * Remove dsn_config.cpp from mac builds. * Attempt to fix mac build error. * Revert: Attempt to fix mac build error. * 2nd attempt to fix mac build error. * Attempt to fix macos build. * Attempt to fix macos build. * Attempt to fix macos build. * Attempt to fix macos build. * Include link to csv parser github repo in NOTICE file. * Add newline at EOF. * Remove try catch blocks for catching all errors and rethrowing same error. Replace NULL with nullptr. * Revert name change for CSV parser NOTICE file back to LICENSE file. * [AD-521] Updated JDBC driver version - part 2. (#20) ### Summary [AD-521] Updated JDBC driver version - part 2. ### Description Add update to 2 YAML files that it picks it up in GitHub workflow. ### Related Issue https://bitquill.atlassian.net/browse/AD-521 * Update CMakeLists.txt Removing changes from networklib * WIP - Add building jdbc connection string from config * reverting dummy_test changing boost link on odbc_test * [AD-523] Internal SSH tunnel tests passing again but more tests needed * Adjust tests - all tests passing again but need to add more * minor refactoring, added error handling integrated with ssh internal tunnel feature * fixing nits * removing unecessary changes extracting get ssh tunnel port to its own method * removing extra line * changing parameters ordering * changing some names * Add tests * Remove unintended changes * Add additional tests * Revert "Merge branch 'affonsov/ad-516/mongocpp-tracercode' into andiem/ad-523/integrate_dsn_settings" This reverts commit 1976ecbd966834d0da26eb959af04f1b517d9894, reversing changes made to 398b1fb39dd4b277c0a124e01d96b5d5e65db3ac. * Revert merge with mongocpp tracer code * Add ssh tunnel to github workflows * Fix mac build errros * Fix mac build errors * Improvements from code review * Remove unecessary change * Fix unit tests * Add ssh tunnel instructions to readme Co-authored-by: affonsov <[email protected]> Co-authored-by: Bruce Irschick <[email protected]> Co-authored-by: Gary Atwal <[email protected]> Co-authored-by: affonsoBQ <[email protected]>
* [AD-522] resolve build errors after merge * fix bug for schema name not correctly loaded on the config window * removed unnecessary headers * [AD-427] Added ResultSet.next and ResultSet.GetString() * [AD-522] address code review comments * change to enum class type for read_preference.h and scan_method.h * change the way enum class objects are read * add static cast to enum types so SetSelection function can work with it * refactor - removed unnecessary comments * refactor - changes code doc in connection_string_parser.h * [AD-521] implement tests for JNI wrapper code * test for TestDocumentDbConnectionGetSshTunnelPortSshTunnelNotActive is not yet active, need to be enabled when we can get external SSH tunnel working. * bug fix: re-implemented DocumentDbConnectionGetSshLocalPort and DocumentDbConnectionIsSshTunnelActive. connection.Get()->GetRef() is passed as first parameter because jobject is required for CallIntMethod and CallBooleanMethod. * better JNI wrapper code is needed in the future so warnings/errors pop up when we pass jobject instead of jclass to the methods. * [AD-521] refactor - remove comments and commented out code * fixing connection uri and instance ptr * fixing merge connection string * refactoring fixing mongo instance happen more than once * [AD-589] implement JNI method call for GetDatabaseMetadata * define the method constant for DocumentDbConnection.getDatabaseMetadata() * create JNI wrapper function for DocumentDbConnection.getMetaData * [AD-589] implement unit test for DocumentDbConnection.getMetaData * fixing mac run test error * [AD-521] add calls to AutoCloseConnection in unit tests * pass & errInfo instead of * errInfo in DocumentDbConnectionGetSshLocalPort and DocumentDbConnectionIsSshTunnelActive. * [AD-521] remove unnecessary comment * [AD-589] fix merge issues * I missed this part of code when I was resolving the merge conflicts. Now they are corrected * [AD-589] update getMetaData JNI wrapper code to pass &errInfo * implement unit test for getMetaData * [AD-589] implement JNI wrapper for DocumentDbDatabaseSchemaMetadataGetSchemaName * implement Java class for * define constant for DocumentDbDatabaseSchemaMetadataGetSchemaName * add empty test function for TestDocumentDbDatabaseSchemaMetadataGetSchemaName * [AD-589] implement unit test for DbDatabaseSchemaMetadataGetSchemaName * cmakelist cleanup * [AD-521] Updated JDBC driver version. (#19) ### Summary [AD-521] Updated JDBC driver version. ### Description * Updated JDBC driver version to 1.1.1 ### Related Issue https://bitquill.atlassian.net/browse/AD-521 * [AD-490] Add performance test. (#15) * Add performance test. * Replace include header odbcinst.h with odbc_constants.h. * Revert header file odbc_constant.h to odbcinst.h. * Include odbcinst.h for windows only. * Revert: include odbcinst.h for windows only. * Update performance test cmake file to include ODBC_INCLUDE_DIRS. * Update performance test cmake file to find package ODBC REQUIRED. * Fix error in performance_test_runner.cpp. * Link to performance test to odbc library in cmake file. * Link performance test to odbc library for windows. * Update checks.yml to continue on error. * Change PerformanceTests to tests. * Change PerformanceTests to tests in file performance_test_runner.h. * Update Java installation instructions. * Update comments. * Deallocate env, stmt, conn handles in functions when no longer needed. * Restructure perf test folder (lib, include, src sub directories created). * Rename 'it_odbc_helper.(h,cpp)' to 'performance_odbc_helper.(h,cpp)'. * Add new line at end of file. * Deallocate conn, env, stmt handles appropriately. Capitilize first letter of function names. * Update perf test documentation. * Use cmake latest for windows build. * Remove dsn_config.cpp from mac builds. * Attempt to fix mac build error. * Revert: Attempt to fix mac build error. * 2nd attempt to fix mac build error. * Attempt to fix macos build. * Attempt to fix macos build. * Attempt to fix macos build. * Attempt to fix macos build. * Include link to csv parser github repo in NOTICE file. * Add newline at EOF. * Remove try catch blocks for catching all errors and rethrowing same error. Replace NULL with nullptr. * Revert name change for CSV parser NOTICE file back to LICENSE file. * [AD-521] Updated JDBC driver version - part 2. (#20) ### Summary [AD-521] Updated JDBC driver version - part 2. ### Description Add update to 2 YAML files that it picks it up in GitHub workflow. ### Related Issue https://bitquill.atlassian.net/browse/AD-521 * Update CMakeLists.txt Removing changes from networklib * WIP - Add building jdbc connection string from config * [AD-521] refactor - change case of ssh to SSH for consistency * reverting dummy_test changing boost link on odbc_test * [AD-589] address code review comments * rename DocumentDbConnectionGetMetaData to DocumentDbConnectionGetDatabaseMetaData * [AD-589] change case from MetaData to Metadata to match Java method name * [AD-543] JNI wrapper code for DatabaseMetaDataGetColumns * [AD-543] unit test for DatabaseMetaData.getColumns looks at: * TABLE_CAT, TABLE_SCHEM, TABLE_NAME, COLUMN_NAME, ORDINAL_POSITION * [AD-523] Internal SSH tunnel tests passing again but more tests needed * Adjust tests - all tests passing again but need to add more * minor refactoring, added error handling integrated with ssh internal tunnel feature * [AD-543] implement ResultSetGetShort * JNI wrapper code for both getShortByIndex and getShortByName methods from resultSet class are implemented * [AD-589] refactor: change from metaData to metadata changes occurred in: * DocumentDbConnectionGetDatabaseMetadata * DocumentDbDatabaseSchemaMetadataGetSchemaName * TestDocumentDbConnectionGetDatabaseMetadata * TestDocumentDbDatabaseSchemaMetadataGetSchemaName * fixing nits * removing unecessary changes extracting get ssh tunnel port to its own method * removing extra line * [AD-543] implement ResultSet.getRow() Jni wrapper code * this function is for getting the number of rows in the resultSet. The row number on the last row would be the size of the resultSet * unit test included by calling getRow in TestDatabaseMetaDataGetTables and TestDatabaseMetaDataGetColumns * [AD-543] implement unit test for getShort function * [AD-543] Define different enum types * changing parameters ordering * changing some names * Add tests * [AD-543] update clang format * [AD-543] change format for column_meta.h to comply with Google style * [AD-543] update draft code * change ReadColumnMetaVector function to receive a resultSet object instead of original ignite parameters * [AD-543] change format for column_meta.h to comply with Google style on more files * [AD-543] formatting change * [AD-543] adapt ColumnsMetaQuery to accept catalog as a parameter Functions affected: * ColumnMetadataQuery * ExecuteGetColumnsMetaQuery * InternalExecuteGetColumnsMetaQuery Reason for change: since the JNI call to getColumns accepts catalog as a parameter, it is required for those 3 functions to essentially pass catalog as a parameter as well, even though the JDBC driver doesn't actually deal with the value of catalog. JNI call is to be implemented in later commits. * [AD-543] format change on column_meta.cpp * [AD-543] remove JNI wrapper code for getShort and its unit test reason: getShort JNI wrapper method call was implemented with the intent to use it for column metadata value SOURCE_DATA_TYPE (for getting the column metadata from the resultSet returned by getColumns), which is a short. However, ODBC driver does not need SOURCE_DATA_TYPE, thus getShort is of no use to JDBC at this point and should be removed. * [AD-543] remove unneeded JDBC enum values * those values will not be needed in ODBC * [AD-543] update formatting of column_metadata_query.cpp * [AD-543] add skeleton code for getColumn * Remove unintended changes * Add additional tests * Revert "Merge branch 'affonsov/ad-516/mongocpp-tracercode' into andiem/ad-523/integrate_dsn_settings" This reverts commit 1976ecbd966834d0da26eb959af04f1b517d9894, reversing changes made to 398b1fb39dd4b277c0a124e01d96b5d5e65db3ac. * [AD-543] add JDBC types to ODBC * the values are copied from the JdbcType Enum class in JdbcTye.java file in DocumentDB JDBC driver codebase * [AD-543] implement BinaryToSqlType function to switch on JDBC type values * Revert merge with mongocpp tracer code * [AD-543] build error fix: change JDBC type from int8_t to int16_t * some of the values of JDBC Type (e.g.,2009, 2012) would overflow if the value is int8_t. * return type for function SqlTypeToBinary (which returns JDBC type) is changed to int16_t as well * [AD-543] add catalog as parameter to ExecuteGetColumnsMetaQuery * Add ssh tunnel to github workflows * [AD-543] fix build errors on git remote * calls ReadColumnMetaVector with 2 arguments instead of 3 * define ReadColumnMetaVector function * [AD-543] make SqlTypeToBinary return int16_t instead * Update .clang-format change indent width and tab width back to 4 * Fix mac build errros * [AD-543] make ReadOnSuccess accept resultSet as a parameter * Fix mac build errors * [AD-543] make BinaryToSqlType accept int16_t as parameter because JDBC binary types are int16_t * [AD-543] construct resultSet global object in MakeRequestGetColumnsMeta * [AD-543] implement SqlToBinaryType function * default return type is Jdbc binary * make function return inside the switch statement to make it consistent with other functions in type_traits name space * [AD-543] in BinaryToSqlType, map Jdbc type ROWID to SQL binary * map JDBC numeric to SQL numeric * and refactor changes: remove white space * [AD-543] update IsSqlTypeSupported to align with SqlToBinaryType function * some reordering occurred to match the ordering of SqlToBinaryType function * SQL_REAL and SQL_NUMERIC become supported, but SQL_GUID is no longer supported * [AD-543] update BinaryTypeToSqlTypeName parameter type from int8_t to int16_t * [AD-543] implement BinaryTypeToSqlTypeName * [AD-543] map Jdbc type VARBINARY to SQL_BINARY in BinaryToSqlType * [AD-543] refactor: move comment to show ignite original code * [AD-543] define SqlTypeName constants * added constants: REAL, NUMERIC, LONGVARCHAR, LONGVARBINARY, SQL_NULL * [AD-543] update SqlTypeColumnSize * added case for SQL NULL type (return 1) * [AD-543] replace Ignite type constants with Documentdb Jdbc type constants in type_info_query.cpp * [AD-543] update SqlTypeTransferLength * added case for SQL NULL type (return 1) * [AD-543] remove redundant return statement in BinaryTypeToSqlTypeName * update SqlTypeDisplaySize * added case for SQL NULL type (return 1) * [AD-543] implement BinaryTypeColumnSize to adapt Jdbc column_size mapping * [AD-543] move using namespace statement to be global instead of inside local functions * [AD-543] mark sql tinyint type as unsigned * previously in Ignite, boolean False (which stands for the type being signed) is returned for SQL tinyint type. However, tinyint has value range (0,255), so it is in fact unsigned * [AD-543] add documentation warnings * warnings for syncing JDBC type values on the ODBC when any changes occur on the JDBC side. * [AD-543] update functions to match Bruce's (AD-594) changes * make ResultSetGetRow and ResultSetGetColumns return JniErrorCode instead of boolean * [AD-543] refactor ResultSetGetColumns function * [AD-543] update java_test to check JniErrorCode * [AD-543] adapt BinaryTypeColumnSize * SQL_DESC_LENGTH is returned for SQL character types * removed JDBC type mapping to column size because that was not needed * [AD-543] update SqlTypeColumnSize and SqlTypeTransferLength * group SQL_LONGVARCHAR with other character types * comment out the return of SQL_DESC_LENGTH in SqlTypeColumnSize because unsure what to return at this point. See comment. * comment out the return of SQL_DESC_OCTET_LENGTH in SqlTypeTransferLength because unsure what to return at this point. See comment. * [AD-543] return false for case SQL_TINYINT in SqlTypeUnsigned * [AD-543] update SqlTypeDisplaySize * group SQL_LONGVARCHAR with other character types * Improvements from code review * Remove unecessary change * [AD-543] change parameter type from int8_t to int16_t * Fix unit tests * Add ssh tunnel instructions to readme * [AD-543] remove comments * commented out code removed in type_traits namespace * [AD-543] change dataType parameter to int16_t * [AD-543] remove todo comments * [AD-543] remove or comment out code in message.cpp code that is removed/commented out: * ReadOnSuccess function. Reason: we don't have a reason to check if the read is successful with our current implementation. * QueryGetColumnsMetaResponse class. * [AD-543] adapt MakeRequestGetColumnsMeta * define GetColumn function * change the type of connection from SharedPointer object back to Connection object * [AD-543] remove comments in MakeRequestGetColumnsMeta * [AD-543] change connection object type in function header * Connection type should be the type for connection * [AD-543] replace Ignite type constants with DocDb type constants * [AD-543] add header files to include * [AD-543] remove columnsResultSet from statement.h * [AD-543] change parameter type in type_traits change parameter type from int8_t to int16_t for functions that accept the binary type, since DocDb Jdbc type constants are int16_t * [AD-543] implement NullabiltyToIsNullable * NullabiltyToIsNullable receives a nullablility value and returns a string. * call GetNullability in column_metadata_query because nullability would be saved * [AD-543] bugfix in MakeRequestGetColumnsMeta * call ReadColumnMetaVector instead of ReadTableMetaVector in MakeRequestGetColumnsMeta * implement ReadColumnMetaVector using ReadTableMetaVector as example * [AD-543] implement BinaryTypeCharOctetLength * for charOctetLength, the maximum length in bytes of a character or binary data type column. For all other data types, this column returns a NULL. * [AD-543] bugfix GetColumns * refactor: parameter name changed from column to coulmnNamePattern * fix typo * [AD-543] bugfix linking error * [AD-543] bugfix linking error * since the definition of the function is removed, the header file should also be gone * [AD-543] bugfix linking error * corrected function header to match the header in column_meta.h * [AD-543] implement getRemarks for column_meta * [AD-543] adapt Read function in column_meta * [AD-543] bugfix java.h header * change code to match header in java.cpp * [AD-543] bugfix: change data type update dataType to int16_t to match DocDb Jdbc Type constnats in binary_common.h * [AD-523] add using statement * add using statement for ignite::common::EncodeURIComponent. * [AD-543] add todo comment for datetime sub code * [AD-543] save ORDINAL_POSITION * GetOrdinalPosition implemented * meta::Read function is modified to accept previously recorded ordinal position as a parameter * Read function now reads ORDINAL_POSITION value from resultSet * [AD-543] add jira link for todo in comment * the link for implementing BinaryTypeDateTimeSub is added * [AD-543] refactor * [AD-543] update todo comments * added jira link for AD-615 * removed finished todo * [AD-543] save catalogName * GetCatalogName implemented * Read function now reads TABLE_CAT value from resultSet * [AD-543] add documentation for parameters in Read * [AD-543] save columnDef * GetColumnDef implemented * Read function now reads COLUMN_DEF value from resultSet * [AD-543] remove finished todo comment * [AD-543] save values in copy constructor and copy operator * add cataloName, columnDef, and ordinalPosition to be copied in the ColumnMeta copy constructor and copy operator * [AD-543] remove comments * removed commented out code * remove todo statement for making Jdbc type definition into a enum. That can be done in future tasks * [AD-543] remove comments * removed commented out code * [AD-543] replace Ignite type with Jdbc type * change occurred in table_metadata_query.cpp * [AD-543] * Added tests for getColumns and SQLColumns. * [AD-543] update columnsMeta * added COLUMN_DEF, SQL_DATA_TYPE, SQL_DATETIME_SUB, CHAR_OCTET_LENGTH, ORDINAL_POSITION to columnsMeta * reformatted push_back code calls for consistency * columnsMeta is a meta::ColumnMeta object that stores the metadata for the column metadata * [AD-543] add comments * the comments will be removed in later commits. However, I wanted to push it to keep a record * [AD-543] remove comments and commented out code * [AD-543] remove todo comments and code comment * [AD-543] implement unit tests * implement TestGetDataWithColumnsReturnsNone * implement TestGetDataWithColumnsReturnsMany * [AD-543] remove comments * [AD-543] refactor * [AD-543] * Improved test for SQLColumns. * [AD-543] * Improved test for SQLColumns. * [AD-543] remove unneeded comment * [AD-543] * Improved test for SQLColumns. * [AD-543] * Improved test for SQLColumns. * [AD-543] * Improved test for SQLColumns. * [AD-543] code review fix * replace DOCUMENTDB_JDBC_TYPE* with JDBC_TYPE_* * [AD-543] bugfix - copy dataType value * [AD-543] resolve NumPrecRadix test error * make SqlTypeNumPrecRadix return -1 on default, so that a null would be put in the buffer if num_prec_radix does not apply to the column, and the meta query test would pass. * [AD-543] reduce warning * initialize ordinalPosition variable * [AD-543] update meta_queries_test * SQL_NO_TOTAL is expected for column size, buffer length, and char octet length * [AD-543] Bugfix meta_queries_test * change buffer length type to SQL_INTEGER in the SQLBindCol function call * sql_data_type should have the same values as data_type * [AD-543] address code review comments * comment changes * typo fix * remove const as return type for NullabilityToIsNullable * [AD-543] code review change * add src/odbc/include/ignite/impl/binary/binary_common.h * modify include statements: replace include of ignite/impl/binary/binary_common.h with ignite/odbc/impl/binary/binary_common.h * [AD-543] add binary_common file under odbc and add include statements * [AD-543] copy impl/binary and impl/interop * some files are modified to be under ODBC namespace, and some files haven't been modified * [AD-543] remove odbc/binary folder * it was a mistake an unnecessary * [AD-543] refactor - format files in odbc/impl/binary * change the namespace from ignite::impl to ignite::odbc::impl * [AD-543] refactor - format files in odbc/impl/interop * change the namespace from ignite::impl to ignite::odbc::impl * [AD-543] remove binary_type_impl because it is not required * [AD-543] update files to look into ignite::odbc namespace * Revert "[AD-543] remove binary_type_impl because it is not required" This reverts commit a36e52270b19198879a623e7036a236406326f45. * [AD-543] remove include from jni_test * removed ignite::impl::binary namespace because it is not needed * [AD-543] copy binary_type file into odbc namespace * [AD-543] refactor include statements into odbc namespace * [AD-543] refactor namespace to be under odbc * [AD-543] refactor changes * [AD-543] refactor changes * [AD-543] refactor - copy files * copy binary/ files that are included in binary_reader_impl.h to odbc/ * [AD-543] refactor copied binary/ files * refactor the files to be under odbc namespace * [AD-543] refactor binary_reader_impl.h * [AD-543] refactor -> copy files * copy ignite/ files that are included in binary_reader_impl.h to ignite/odbc/ * [AD-543] refactor copied ignite/ files * refactor the files to be under odbc namespace * refactor document of odbc/binary/ files * [AD-543] update include statements to include files under odbc * [AD-543] copy ignite/binary/ files to ignite/odbc/binary/ * [AD-543] refactor copied ignite/binary/ files * refactor the files to be under odbc namespace * [AD-543] remove reference to namespace ignite::impl::binary * [AD-543] copy ignite/binary files to ignite/odbc/binary * [AD-543] refactor copied ignite/binary/ files * refactor the files to be under odbc namespace * [AD-543] code change from code review comment * [AD-543] change odbc files to use odbc namespace * [AD-543] refactor * update include statements to be in odbc namespace * [AD-543] refactor changes * [AD-543] copy .cpp files to odbc folder * [AD-543] refactor copied files * refactor the files to be under odbc namespace * [AD-543] refactor objects under odbc space * [AD-543] add using statement * reason: on GitHub Actions, errors show when the complier thinks ignite::IgniteError is used instead of ignite::odbc::IgniteError. * [AD-543] refactor include statements * refactored to include header files from odbc/binary_common.h * refactored ignite::impl to ignite:odbc::impl * [AD-543] refactor changes * add using odbc namespace statements * [AD-543] modify cmakelist * included newly copied .cpp files * [AD-543] refactor column_test * [AD-543] refactor changes * [AD-543] address code review comments * add new line at end of file * move { to be on the same line * [AD-543] fix typo in test names * [AD-543] address code review comments * [AD-543] address code review comment * simply to nullptr * [AD-543] improvement from code review * [AD-543] change SQL_FLOAT back to 4 bytes * [AD-543] simplify resultSet object creation * [AD-543] indicate nullability property * changed ColumnMeta constructor to include nullability as a parameter. * nullability property is implemented in column_metadata_query.cpp and table_metadata_query.cpp. * issue AD-626 created for indicating the nullability in files type_info_query.cpp, special_coulmns_query.cpp, primary_keys_query.cpp, and foreign_keys_query.cpp: https://bitquill.atlassian.net/browse/AD-626 * [AD-543] improvements from code review comments * change nullability to NO_NULL for TABLE_NAME and TABLE_TYPE * [AD-543] refactor from code review comments Co-authored-by: Andie Montoya <[email protected]> Co-authored-by: Bruce Irschick <[email protected]> Co-authored-by: Affonso Vieira <[email protected]> Co-authored-by: Gary Atwal <[email protected]>
* Add performance test. * Replace include header odbcinst.h with odbc_constants.h. * Revert header file odbc_constant.h to odbcinst.h. * Include odbcinst.h for windows only. * Revert: include odbcinst.h for windows only. * Update performance test cmake file to include ODBC_INCLUDE_DIRS. * Update performance test cmake file to find package ODBC REQUIRED. * Fix error in performance_test_runner.cpp. * Link to performance test to odbc library in cmake file. * Link performance test to odbc library for windows. * Update checks.yml to continue on error. * Change PerformanceTests to tests. * Change PerformanceTests to tests in file performance_test_runner.h. * Update Java installation instructions. * Update comments. * Deallocate env, stmt, conn handles in functions when no longer needed. * Restructure perf test folder (lib, include, src sub directories created). * Rename 'it_odbc_helper.(h,cpp)' to 'performance_odbc_helper.(h,cpp)'. * Add new line at end of file. * Deallocate conn, env, stmt handles appropriately. Capitilize first letter of function names. * Update perf test documentation. * Use cmake latest for windows build. * Remove dsn_config.cpp from mac builds. * Attempt to fix mac build error. * Revert: Attempt to fix mac build error. * 2nd attempt to fix mac build error. * Attempt to fix macos build. * Attempt to fix macos build. * Attempt to fix macos build. * Attempt to fix macos build. * Include link to csv parser github repo in NOTICE file. * Add newline at EOF. * Remove try catch blocks for catching all errors and rethrowing same error. Replace NULL with nullptr. * Revert name change for CSV parser NOTICE file back to LICENSE file.
* add to use in the build and link mongo cpp driver * moving changes to network lib * [AD-516] * Defined NOMINMAX to disable turning min()/max() into macros to avoid conflict with MONGOCXX library. * [AD-516] * Defined NOMINMAX to disable turning min()/max() into macros to avoid conflict with MONGOCXX library. * moving implementation to connection.cpp adjusting odbc cmakelist * fixing mac build * fixing windows x86 workflow * editing cmakelist * set cmake standard 11 * fixing mac build * Code refactoring * fix compilation error * adding sshtunnelport placeholder * fixing connection string * fixing test and githubaction * fixing git hub actions * fixing connection port * fixing mac build * trying to fix ssh tunnel in github actions * fixing github action ssh tunnel * fixing github action * fixing windows build * fixing windows buld * fixing connection string * removing trace * build error * install cert in windows build * fixing external ssh tunnel windows build * testing not importing certificate * fixing mac build * removing install cert on windows * fixing windows build * fix win 32 bit * adapting test and clean up cmakelist file * fixing windows build * fixing return * fixing windows build * fixing mac build * fixing cpp connection string * fixing reading certificate * debugging mac build * fixing mac build * fixing memory access * fixing windows memory access * fixing connection string * fixing connection uri and instance ptr * fixing merge connection string * refactoring fixing mongo instance happen more than once * fixing mac run test error * cmakelist cleanup * [AD-521] Updated JDBC driver version. (#19) ### Summary [AD-521] Updated JDBC driver version. ### Description * Updated JDBC driver version to 1.1.1 ### Related Issue https://bitquill.atlassian.net/browse/AD-521 * [AD-490] Add performance test. (#15) * Add performance test. * Replace include header odbcinst.h with odbc_constants.h. * Revert header file odbc_constant.h to odbcinst.h. * Include odbcinst.h for windows only. * Revert: include odbcinst.h for windows only. * Update performance test cmake file to include ODBC_INCLUDE_DIRS. * Update performance test cmake file to find package ODBC REQUIRED. * Fix error in performance_test_runner.cpp. * Link to performance test to odbc library in cmake file. * Link performance test to odbc library for windows. * Update checks.yml to continue on error. * Change PerformanceTests to tests. * Change PerformanceTests to tests in file performance_test_runner.h. * Update Java installation instructions. * Update comments. * Deallocate env, stmt, conn handles in functions when no longer needed. * Restructure perf test folder (lib, include, src sub directories created). * Rename 'it_odbc_helper.(h,cpp)' to 'performance_odbc_helper.(h,cpp)'. * Add new line at end of file. * Deallocate conn, env, stmt handles appropriately. Capitilize first letter of function names. * Update perf test documentation. * Use cmake latest for windows build. * Remove dsn_config.cpp from mac builds. * Attempt to fix mac build error. * Revert: Attempt to fix mac build error. * 2nd attempt to fix mac build error. * Attempt to fix macos build. * Attempt to fix macos build. * Attempt to fix macos build. * Attempt to fix macos build. * Include link to csv parser github repo in NOTICE file. * Add newline at EOF. * Remove try catch blocks for catching all errors and rethrowing same error. Replace NULL with nullptr. * Revert name change for CSV parser NOTICE file back to LICENSE file. * [AD-521] Updated JDBC driver version - part 2. (#20) ### Summary [AD-521] Updated JDBC driver version - part 2. ### Description Add update to 2 YAML files that it picks it up in GitHub workflow. ### Related Issue https://bitquill.atlassian.net/browse/AD-521 * Update CMakeLists.txt Removing changes from networklib * WIP - Add building jdbc connection string from config * reverting dummy_test changing boost link on odbc_test * [AD-523] Internal SSH tunnel tests passing again but more tests needed * Adjust tests - all tests passing again but need to add more * minor refactoring, added error handling integrated with ssh internal tunnel feature * fixing nits * removing unecessary changes extracting get ssh tunnel port to its own method * removing extra line * changing parameters ordering * changing some names * Add tests * Remove unintended changes * Add additional tests * Revert "Merge branch 'affonsov/ad-516/mongocpp-tracercode' into andiem/ad-523/integrate_dsn_settings" This reverts commit c15033545781299ae4c107689d098d2092b170df, reversing changes made to 9641af1bbe711a8da49492df1a11903f6e82d256. * Revert merge with mongocpp tracer code * Add ssh tunnel to github workflows * Fix mac build errros * Fix mac build errors * Improvements from code review * Remove unecessary change * Fix unit tests * Add ssh tunnel instructions to readme Co-authored-by: affonsov <[email protected]> Co-authored-by: Bruce Irschick <[email protected]> Co-authored-by: Gary Atwal <[email protected]> Co-authored-by: affonsoBQ <[email protected]>
* [AD-522] resolve build errors after merge * fix bug for schema name not correctly loaded on the config window * removed unnecessary headers * [AD-427] Added ResultSet.next and ResultSet.GetString() * [AD-522] address code review comments * change to enum class type for read_preference.h and scan_method.h * change the way enum class objects are read * add static cast to enum types so SetSelection function can work with it * refactor - removed unnecessary comments * refactor - changes code doc in connection_string_parser.h * [AD-521] implement tests for JNI wrapper code * test for TestDocumentDbConnectionGetSshTunnelPortSshTunnelNotActive is not yet active, need to be enabled when we can get external SSH tunnel working. * bug fix: re-implemented DocumentDbConnectionGetSshLocalPort and DocumentDbConnectionIsSshTunnelActive. connection.Get()->GetRef() is passed as first parameter because jobject is required for CallIntMethod and CallBooleanMethod. * better JNI wrapper code is needed in the future so warnings/errors pop up when we pass jobject instead of jclass to the methods. * [AD-521] refactor - remove comments and commented out code * fixing connection uri and instance ptr * fixing merge connection string * refactoring fixing mongo instance happen more than once * [AD-589] implement JNI method call for GetDatabaseMetadata * define the method constant for DocumentDbConnection.getDatabaseMetadata() * create JNI wrapper function for DocumentDbConnection.getMetaData * [AD-589] implement unit test for DocumentDbConnection.getMetaData * fixing mac run test error * [AD-521] add calls to AutoCloseConnection in unit tests * pass & errInfo instead of * errInfo in DocumentDbConnectionGetSshLocalPort and DocumentDbConnectionIsSshTunnelActive. * [AD-521] remove unnecessary comment * [AD-589] fix merge issues * I missed this part of code when I was resolving the merge conflicts. Now they are corrected * [AD-589] update getMetaData JNI wrapper code to pass &errInfo * implement unit test for getMetaData * [AD-589] implement JNI wrapper for DocumentDbDatabaseSchemaMetadataGetSchemaName * implement Java class for * define constant for DocumentDbDatabaseSchemaMetadataGetSchemaName * add empty test function for TestDocumentDbDatabaseSchemaMetadataGetSchemaName * [AD-589] implement unit test for DbDatabaseSchemaMetadataGetSchemaName * cmakelist cleanup * [AD-521] Updated JDBC driver version. (#19) ### Summary [AD-521] Updated JDBC driver version. ### Description * Updated JDBC driver version to 1.1.1 ### Related Issue https://bitquill.atlassian.net/browse/AD-521 * [AD-490] Add performance test. (#15) * Add performance test. * Replace include header odbcinst.h with odbc_constants.h. * Revert header file odbc_constant.h to odbcinst.h. * Include odbcinst.h for windows only. * Revert: include odbcinst.h for windows only. * Update performance test cmake file to include ODBC_INCLUDE_DIRS. * Update performance test cmake file to find package ODBC REQUIRED. * Fix error in performance_test_runner.cpp. * Link to performance test to odbc library in cmake file. * Link performance test to odbc library for windows. * Update checks.yml to continue on error. * Change PerformanceTests to tests. * Change PerformanceTests to tests in file performance_test_runner.h. * Update Java installation instructions. * Update comments. * Deallocate env, stmt, conn handles in functions when no longer needed. * Restructure perf test folder (lib, include, src sub directories created). * Rename 'it_odbc_helper.(h,cpp)' to 'performance_odbc_helper.(h,cpp)'. * Add new line at end of file. * Deallocate conn, env, stmt handles appropriately. Capitilize first letter of function names. * Update perf test documentation. * Use cmake latest for windows build. * Remove dsn_config.cpp from mac builds. * Attempt to fix mac build error. * Revert: Attempt to fix mac build error. * 2nd attempt to fix mac build error. * Attempt to fix macos build. * Attempt to fix macos build. * Attempt to fix macos build. * Attempt to fix macos build. * Include link to csv parser github repo in NOTICE file. * Add newline at EOF. * Remove try catch blocks for catching all errors and rethrowing same error. Replace NULL with nullptr. * Revert name change for CSV parser NOTICE file back to LICENSE file. * [AD-521] Updated JDBC driver version - part 2. (#20) ### Summary [AD-521] Updated JDBC driver version - part 2. ### Description Add update to 2 YAML files that it picks it up in GitHub workflow. ### Related Issue https://bitquill.atlassian.net/browse/AD-521 * Update CMakeLists.txt Removing changes from networklib * WIP - Add building jdbc connection string from config * [AD-521] refactor - change case of ssh to SSH for consistency * reverting dummy_test changing boost link on odbc_test * [AD-589] address code review comments * rename DocumentDbConnectionGetMetaData to DocumentDbConnectionGetDatabaseMetaData * [AD-589] change case from MetaData to Metadata to match Java method name * [AD-543] JNI wrapper code for DatabaseMetaDataGetColumns * [AD-543] unit test for DatabaseMetaData.getColumns looks at: * TABLE_CAT, TABLE_SCHEM, TABLE_NAME, COLUMN_NAME, ORDINAL_POSITION * [AD-523] Internal SSH tunnel tests passing again but more tests needed * Adjust tests - all tests passing again but need to add more * minor refactoring, added error handling integrated with ssh internal tunnel feature * [AD-543] implement ResultSetGetShort * JNI wrapper code for both getShortByIndex and getShortByName methods from resultSet class are implemented * [AD-589] refactor: change from metaData to metadata changes occurred in: * DocumentDbConnectionGetDatabaseMetadata * DocumentDbDatabaseSchemaMetadataGetSchemaName * TestDocumentDbConnectionGetDatabaseMetadata * TestDocumentDbDatabaseSchemaMetadataGetSchemaName * fixing nits * removing unecessary changes extracting get ssh tunnel port to its own method * removing extra line * [AD-543] implement ResultSet.getRow() Jni wrapper code * this function is for getting the number of rows in the resultSet. The row number on the last row would be the size of the resultSet * unit test included by calling getRow in TestDatabaseMetaDataGetTables and TestDatabaseMetaDataGetColumns * [AD-543] implement unit test for getShort function * [AD-543] Define different enum types * changing parameters ordering * changing some names * Add tests * [AD-543] update clang format * [AD-543] change format for column_meta.h to comply with Google style * [AD-543] update draft code * change ReadColumnMetaVector function to receive a resultSet object instead of original ignite parameters * [AD-543] change format for column_meta.h to comply with Google style on more files * [AD-543] formatting change * [AD-543] adapt ColumnsMetaQuery to accept catalog as a parameter Functions affected: * ColumnMetadataQuery * ExecuteGetColumnsMetaQuery * InternalExecuteGetColumnsMetaQuery Reason for change: since the JNI call to getColumns accepts catalog as a parameter, it is required for those 3 functions to essentially pass catalog as a parameter as well, even though the JDBC driver doesn't actually deal with the value of catalog. JNI call is to be implemented in later commits. * [AD-543] format change on column_meta.cpp * [AD-543] remove JNI wrapper code for getShort and its unit test reason: getShort JNI wrapper method call was implemented with the intent to use it for column metadata value SOURCE_DATA_TYPE (for getting the column metadata from the resultSet returned by getColumns), which is a short. However, ODBC driver does not need SOURCE_DATA_TYPE, thus getShort is of no use to JDBC at this point and should be removed. * [AD-543] remove unneeded JDBC enum values * those values will not be needed in ODBC * [AD-543] update formatting of column_metadata_query.cpp * [AD-543] add skeleton code for getColumn * Remove unintended changes * Add additional tests * Revert "Merge branch 'affonsov/ad-516/mongocpp-tracercode' into andiem/ad-523/integrate_dsn_settings" This reverts commit c15033545781299ae4c107689d098d2092b170df, reversing changes made to 9641af1bbe711a8da49492df1a11903f6e82d256. * [AD-543] add JDBC types to ODBC * the values are copied from the JdbcType Enum class in JdbcTye.java file in DocumentDB JDBC driver codebase * [AD-543] implement BinaryToSqlType function to switch on JDBC type values * Revert merge with mongocpp tracer code * [AD-543] build error fix: change JDBC type from int8_t to int16_t * some of the values of JDBC Type (e.g.,2009, 2012) would overflow if the value is int8_t. * return type for function SqlTypeToBinary (which returns JDBC type) is changed to int16_t as well * [AD-543] add catalog as parameter to ExecuteGetColumnsMetaQuery * Add ssh tunnel to github workflows * [AD-543] fix build errors on git remote * calls ReadColumnMetaVector with 2 arguments instead of 3 * define ReadColumnMetaVector function * [AD-543] make SqlTypeToBinary return int16_t instead * Update .clang-format change indent width and tab width back to 4 * Fix mac build errros * [AD-543] make ReadOnSuccess accept resultSet as a parameter * Fix mac build errors * [AD-543] make BinaryToSqlType accept int16_t as parameter because JDBC binary types are int16_t * [AD-543] construct resultSet global object in MakeRequestGetColumnsMeta * [AD-543] implement SqlToBinaryType function * default return type is Jdbc binary * make function return inside the switch statement to make it consistent with other functions in type_traits name space * [AD-543] in BinaryToSqlType, map Jdbc type ROWID to SQL binary * map JDBC numeric to SQL numeric * and refactor changes: remove white space * [AD-543] update IsSqlTypeSupported to align with SqlToBinaryType function * some reordering occurred to match the ordering of SqlToBinaryType function * SQL_REAL and SQL_NUMERIC become supported, but SQL_GUID is no longer supported * [AD-543] update BinaryTypeToSqlTypeName parameter type from int8_t to int16_t * [AD-543] implement BinaryTypeToSqlTypeName * [AD-543] map Jdbc type VARBINARY to SQL_BINARY in BinaryToSqlType * [AD-543] refactor: move comment to show ignite original code * [AD-543] define SqlTypeName constants * added constants: REAL, NUMERIC, LONGVARCHAR, LONGVARBINARY, SQL_NULL * [AD-543] update SqlTypeColumnSize * added case for SQL NULL type (return 1) * [AD-543] replace Ignite type constants with Documentdb Jdbc type constants in type_info_query.cpp * [AD-543] update SqlTypeTransferLength * added case for SQL NULL type (return 1) * [AD-543] remove redundant return statement in BinaryTypeToSqlTypeName * update SqlTypeDisplaySize * added case for SQL NULL type (return 1) * [AD-543] implement BinaryTypeColumnSize to adapt Jdbc column_size mapping * [AD-543] move using namespace statement to be global instead of inside local functions * [AD-543] mark sql tinyint type as unsigned * previously in Ignite, boolean False (which stands for the type being signed) is returned for SQL tinyint type. However, tinyint has value range (0,255), so it is in fact unsigned * [AD-543] add documentation warnings * warnings for syncing JDBC type values on the ODBC when any changes occur on the JDBC side. * [AD-543] update functions to match Bruce's (AD-594) changes * make ResultSetGetRow and ResultSetGetColumns return JniErrorCode instead of boolean * [AD-543] refactor ResultSetGetColumns function * [AD-543] update java_test to check JniErrorCode * [AD-543] adapt BinaryTypeColumnSize * SQL_DESC_LENGTH is returned for SQL character types * removed JDBC type mapping to column size because that was not needed * [AD-543] update SqlTypeColumnSize and SqlTypeTransferLength * group SQL_LONGVARCHAR with other character types * comment out the return of SQL_DESC_LENGTH in SqlTypeColumnSize because unsure what to return at this point. See comment. * comment out the return of SQL_DESC_OCTET_LENGTH in SqlTypeTransferLength because unsure what to return at this point. See comment. * [AD-543] return false for case SQL_TINYINT in SqlTypeUnsigned * [AD-543] update SqlTypeDisplaySize * group SQL_LONGVARCHAR with other character types * Improvements from code review * Remove unecessary change * [AD-543] change parameter type from int8_t to int16_t * Fix unit tests * Add ssh tunnel instructions to readme * [AD-543] remove comments * commented out code removed in type_traits namespace * [AD-543] change dataType parameter to int16_t * [AD-543] remove todo comments * [AD-543] remove or comment out code in message.cpp code that is removed/commented out: * ReadOnSuccess function. Reason: we don't have a reason to check if the read is successful with our current implementation. * QueryGetColumnsMetaResponse class. * [AD-543] adapt MakeRequestGetColumnsMeta * define GetColumn function * change the type of connection from SharedPointer object back to Connection object * [AD-543] remove comments in MakeRequestGetColumnsMeta * [AD-543] change connection object type in function header * Connection type should be the type for connection * [AD-543] replace Ignite type constants with DocDb type constants * [AD-543] add header files to include * [AD-543] remove columnsResultSet from statement.h * [AD-543] change parameter type in type_traits change parameter type from int8_t to int16_t for functions that accept the binary type, since DocDb Jdbc type constants are int16_t * [AD-543] implement NullabiltyToIsNullable * NullabiltyToIsNullable receives a nullablility value and returns a string. * call GetNullability in column_metadata_query because nullability would be saved * [AD-543] bugfix in MakeRequestGetColumnsMeta * call ReadColumnMetaVector instead of ReadTableMetaVector in MakeRequestGetColumnsMeta * implement ReadColumnMetaVector using ReadTableMetaVector as example * [AD-543] implement BinaryTypeCharOctetLength * for charOctetLength, the maximum length in bytes of a character or binary data type column. For all other data types, this column returns a NULL. * [AD-543] bugfix GetColumns * refactor: parameter name changed from column to coulmnNamePattern * fix typo * [AD-543] bugfix linking error * [AD-543] bugfix linking error * since the definition of the function is removed, the header file should also be gone * [AD-543] bugfix linking error * corrected function header to match the header in column_meta.h * [AD-543] implement getRemarks for column_meta * [AD-543] adapt Read function in column_meta * [AD-543] bugfix java.h header * change code to match header in java.cpp * [AD-543] bugfix: change data type update dataType to int16_t to match DocDb Jdbc Type constnats in binary_common.h * [AD-523] add using statement * add using statement for ignite::common::EncodeURIComponent. * [AD-543] add todo comment for datetime sub code * [AD-543] save ORDINAL_POSITION * GetOrdinalPosition implemented * meta::Read function is modified to accept previously recorded ordinal position as a parameter * Read function now reads ORDINAL_POSITION value from resultSet * [AD-543] add jira link for todo in comment * the link for implementing BinaryTypeDateTimeSub is added * [AD-543] refactor * [AD-543] update todo comments * added jira link for AD-615 * removed finished todo * [AD-543] save catalogName * GetCatalogName implemented * Read function now reads TABLE_CAT value from resultSet * [AD-543] add documentation for parameters in Read * [AD-543] save columnDef * GetColumnDef implemented * Read function now reads COLUMN_DEF value from resultSet * [AD-543] remove finished todo comment * [AD-543] save values in copy constructor and copy operator * add cataloName, columnDef, and ordinalPosition to be copied in the ColumnMeta copy constructor and copy operator * [AD-543] remove comments * removed commented out code * remove todo statement for making Jdbc type definition into a enum. That can be done in future tasks * [AD-543] remove comments * removed commented out code * [AD-543] replace Ignite type with Jdbc type * change occurred in table_metadata_query.cpp * [AD-543] * Added tests for getColumns and SQLColumns. * [AD-543] update columnsMeta * added COLUMN_DEF, SQL_DATA_TYPE, SQL_DATETIME_SUB, CHAR_OCTET_LENGTH, ORDINAL_POSITION to columnsMeta * reformatted push_back code calls for consistency * columnsMeta is a meta::ColumnMeta object that stores the metadata for the column metadata * [AD-543] add comments * the comments will be removed in later commits. However, I wanted to push it to keep a record * [AD-543] remove comments and commented out code * [AD-543] remove todo comments and code comment * [AD-543] implement unit tests * implement TestGetDataWithColumnsReturnsNone * implement TestGetDataWithColumnsReturnsMany * [AD-543] remove comments * [AD-543] refactor * [AD-543] * Improved test for SQLColumns. * [AD-543] * Improved test for SQLColumns. * [AD-543] remove unneeded comment * [AD-543] * Improved test for SQLColumns. * [AD-543] * Improved test for SQLColumns. * [AD-543] * Improved test for SQLColumns. * [AD-543] code review fix * replace DOCUMENTDB_JDBC_TYPE* with JDBC_TYPE_* * [AD-543] bugfix - copy dataType value * [AD-543] resolve NumPrecRadix test error * make SqlTypeNumPrecRadix return -1 on default, so that a null would be put in the buffer if num_prec_radix does not apply to the column, and the meta query test would pass. * [AD-543] reduce warning * initialize ordinalPosition variable * [AD-543] update meta_queries_test * SQL_NO_TOTAL is expected for column size, buffer length, and char octet length * [AD-543] Bugfix meta_queries_test * change buffer length type to SQL_INTEGER in the SQLBindCol function call * sql_data_type should have the same values as data_type * [AD-543] address code review comments * comment changes * typo fix * remove const as return type for NullabilityToIsNullable * [AD-543] code review change * add src/odbc/include/ignite/impl/binary/binary_common.h * modify include statements: replace include of ignite/impl/binary/binary_common.h with ignite/odbc/impl/binary/binary_common.h * [AD-543] add binary_common file under odbc and add include statements * [AD-543] copy impl/binary and impl/interop * some files are modified to be under ODBC namespace, and some files haven't been modified * [AD-543] remove odbc/binary folder * it was a mistake an unnecessary * [AD-543] refactor - format files in odbc/impl/binary * change the namespace from ignite::impl to ignite::odbc::impl * [AD-543] refactor - format files in odbc/impl/interop * change the namespace from ignite::impl to ignite::odbc::impl * [AD-543] remove binary_type_impl because it is not required * [AD-543] update files to look into ignite::odbc namespace * Revert "[AD-543] remove binary_type_impl because it is not required" This reverts commit a3d170ca0a2cb948af950f81d400abfd7e886a95. * [AD-543] remove include from jni_test * removed ignite::impl::binary namespace because it is not needed * [AD-543] copy binary_type file into odbc namespace * [AD-543] refactor include statements into odbc namespace * [AD-543] refactor namespace to be under odbc * [AD-543] refactor changes * [AD-543] refactor changes * [AD-543] refactor - copy files * copy binary/ files that are included in binary_reader_impl.h to odbc/ * [AD-543] refactor copied binary/ files * refactor the files to be under odbc namespace * [AD-543] refactor binary_reader_impl.h * [AD-543] refactor -> copy files * copy ignite/ files that are included in binary_reader_impl.h to ignite/odbc/ * [AD-543] refactor copied ignite/ files * refactor the files to be under odbc namespace * refactor document of odbc/binary/ files * [AD-543] update include statements to include files under odbc * [AD-543] copy ignite/binary/ files to ignite/odbc/binary/ * [AD-543] refactor copied ignite/binary/ files * refactor the files to be under odbc namespace * [AD-543] remove reference to namespace ignite::impl::binary * [AD-543] copy ignite/binary files to ignite/odbc/binary * [AD-543] refactor copied ignite/binary/ files * refactor the files to be under odbc namespace * [AD-543] code change from code review comment * [AD-543] change odbc files to use odbc namespace * [AD-543] refactor * update include statements to be in odbc namespace * [AD-543] refactor changes * [AD-543] copy .cpp files to odbc folder * [AD-543] refactor copied files * refactor the files to be under odbc namespace * [AD-543] refactor objects under odbc space * [AD-543] add using statement * reason: on GitHub Actions, errors show when the complier thinks ignite::IgniteError is used instead of ignite::odbc::IgniteError. * [AD-543] refactor include statements * refactored to include header files from odbc/binary_common.h * refactored ignite::impl to ignite:odbc::impl * [AD-543] refactor changes * add using odbc namespace statements * [AD-543] modify cmakelist * included newly copied .cpp files * [AD-543] refactor column_test * [AD-543] refactor changes * [AD-543] address code review comments * add new line at end of file * move { to be on the same line * [AD-543] fix typo in test names * [AD-543] address code review comments * [AD-543] address code review comment * simply to nullptr * [AD-543] improvement from code review * [AD-543] change SQL_FLOAT back to 4 bytes * [AD-543] simplify resultSet object creation * [AD-543] indicate nullability property * changed ColumnMeta constructor to include nullability as a parameter. * nullability property is implemented in column_metadata_query.cpp and table_metadata_query.cpp. * issue AD-626 created for indicating the nullability in files type_info_query.cpp, special_coulmns_query.cpp, primary_keys_query.cpp, and foreign_keys_query.cpp: https://bitquill.atlassian.net/browse/AD-626 * [AD-543] improvements from code review comments * change nullability to NO_NULL for TABLE_NAME and TABLE_TYPE * [AD-543] refactor from code review comments Co-authored-by: Andie Montoya <[email protected]> Co-authored-by: Bruce Irschick <[email protected]> Co-authored-by: Affonso Vieira <[email protected]> Co-authored-by: Gary Atwal <[email protected]>
…tion. (#133) * Enable CodeCoverage (#29) * enabling publishing code coverage results * Enable CodeCoverage (#29) * enabling publishing code coverage results * Enable cppcheck in windows build (#33) * removing thin-client and thin-client-test * enabling cppcheck * Enable cppcheck in windows build (#33) * removing thin-client and thin-client-test * enabling cppcheck * [AD-543] Adaption SQLColumns Return Columns metadata (#30) * [AD-522] resolve build errors after merge * fix bug for schema name not correctly loaded on the config window * removed unnecessary headers * [AD-427] Added ResultSet.next and ResultSet.GetString() * [AD-522] address code review comments * change to enum class type for read_preference.h and scan_method.h * change the way enum class objects are read * add static cast to enum types so SetSelection function can work with it * refactor - removed unnecessary comments * refactor - changes code doc in connection_string_parser.h * [AD-521] implement tests for JNI wrapper code * test for TestDocumentDbConnectionGetSshTunnelPortSshTunnelNotActive is not yet active, need to be enabled when we can get external SSH tunnel working. * bug fix: re-implemented DocumentDbConnectionGetSshLocalPort and DocumentDbConnectionIsSshTunnelActive. connection.Get()->GetRef() is passed as first parameter because jobject is required for CallIntMethod and CallBooleanMethod. * better JNI wrapper code is needed in the future so warnings/errors pop up when we pass jobject instead of jclass to the methods. * [AD-521] refactor - remove comments and commented out code * fixing connection uri and instance ptr * fixing merge connection string * refactoring fixing mongo instance happen more than once * [AD-589] implement JNI method call for GetDatabaseMetadata * define the method constant for DocumentDbConnection.getDatabaseMetadata() * create JNI wrapper function for DocumentDbConnection.getMetaData * [AD-589] implement unit test for DocumentDbConnection.getMetaData * fixing mac run test error * [AD-521] add calls to AutoCloseConnection in unit tests * pass & errInfo instead of * errInfo in DocumentDbConnectionGetSshLocalPort and DocumentDbConnectionIsSshTunnelActive. * [AD-521] remove unnecessary comment * [AD-589] fix merge issues * I missed this part of code when I was resolving the merge conflicts. Now they are corrected * [AD-589] update getMetaData JNI wrapper code to pass &errInfo * implement unit test for getMetaData * [AD-589] implement JNI wrapper for DocumentDbDatabaseSchemaMetadataGetSchemaName * implement Java class for * define constant for DocumentDbDatabaseSchemaMetadataGetSchemaName * add empty test function for TestDocumentDbDatabaseSchemaMetadataGetSchemaName * [AD-589] implement unit test for DbDatabaseSchemaMetadataGetSchemaName * cmakelist cleanup * [AD-521] Updated JDBC driver version. (#19) ### Summary [AD-521] Updated JDBC driver version. ### Description * Updated JDBC driver version to 1.1.1 ### Related Issue https://bitquill.atlassian.net/browse/AD-521 * [AD-490] Add performance test. (#15) * Add performance test. * Replace include header odbcinst.h with odbc_constants.h. * Revert header file odbc_constant.h to odbcinst.h. * Include odbcinst.h for windows only. * Revert: include odbcinst.h for windows only. * Update performance test cmake file to include ODBC_INCLUDE_DIRS. * Update performance test cmake file to find package ODBC REQUIRED. * Fix error in performance_test_runner.cpp. * Link to performance test to odbc library in cmake file. * Link performance test to odbc library for windows. * Update checks.yml to continue on error. * Change PerformanceTests to tests. * Change PerformanceTests to tests in file performance_test_runner.h. * Update Java installation instructions. * Update comments. * Deallocate env, stmt, conn handles in functions when no longer needed. * Restructure perf test folder (lib, include, src sub directories created). * Rename 'it_odbc_helper.(h,cpp)' to 'performance_odbc_helper.(h,cpp)'. * Add new line at end of file. * Deallocate conn, env, stmt handles appropriately. Capitilize first letter of function names. * Update perf test documentation. * Use cmake latest for windows build. * Remove dsn_config.cpp from mac builds. * Attempt to fix mac build error. * Revert: Attempt to fix mac build error. * 2nd attempt to fix mac build error. * Attempt to fix macos build. * Attempt to fix macos build. * Attempt to fix macos build. * Attempt to fix macos build. * Include link to csv parser github repo in NOTICE file. * Add newline at EOF. * Remove try catch blocks for catching all errors and rethrowing same error. Replace NULL with nullptr. * Revert name change for CSV parser NOTICE file back to LICENSE file. * [AD-521] Updated JDBC driver version - part 2. (#20) ### Summary [AD-521] Updated JDBC driver version - part 2. ### Description Add update to 2 YAML files that it picks it up in GitHub workflow. ### Related Issue https://bitquill.atlassian.net/browse/AD-521 * Update CMakeLists.txt Removing changes from networklib * WIP - Add building jdbc connection string from config * [AD-521] refactor - change case of ssh to SSH for consistency * reverting dummy_test changing boost link on odbc_test * [AD-589] address code review comments * rename DocumentDbConnectionGetMetaData to DocumentDbConnectionGetDatabaseMetaData * [AD-589] change case from MetaData to Metadata to match Java method name * [AD-543] JNI wrapper code for DatabaseMetaDataGetColumns * [AD-543] unit test for DatabaseMetaData.getColumns looks at: * TABLE_CAT, TABLE_SCHEM, TABLE_NAME, COLUMN_NAME, ORDINAL_POSITION * [AD-523] Internal SSH tunnel tests passing again but more tests needed * Adjust tests - all tests passing again but need to add more * minor refactoring, added error handling integrated with ssh internal tunnel feature * [AD-543] implement ResultSetGetShort * JNI wrapper code for both getShortByIndex and getShortByName methods from resultSet class are implemented * [AD-589] refactor: change from metaData to metadata changes occurred in: * DocumentDbConnectionGetDatabaseMetadata * DocumentDbDatabaseSchemaMetadataGetSchemaName * TestDocumentDbConnectionGetDatabaseMetadata * TestDocumentDbDatabaseSchemaMetadataGetSchemaName * fixing nits * removing unecessary changes extracting get ssh tunnel port to its own method * removing extra line * [AD-543] implement ResultSet.getRow() Jni wrapper code * this function is for getting the number of rows in the resultSet. The row number on the last row would be the size of the resultSet * unit test included by calling getRow in TestDatabaseMetaDataGetTables and TestDatabaseMetaDataGetColumns * [AD-543] implement unit test for getShort function * [AD-543] Define different enum types * changing parameters ordering * changing some names * Add tests * [AD-543] update clang format * [AD-543] change format for column_meta.h to comply with Google style * [AD-543] update draft code * change ReadColumnMetaVector function to receive a resultSet object instead of original ignite parameters * [AD-543] change format for column_meta.h to comply with Google style on more files * [AD-543] formatting change * [AD-543] adapt ColumnsMetaQuery to accept catalog as a parameter Functions affected: * ColumnMetadataQuery * ExecuteGetColumnsMetaQuery * InternalExecuteGetColumnsMetaQuery Reason for change: since the JNI call to getColumns accepts catalog as a parameter, it is required for those 3 functions to essentially pass catalog as a parameter as well, even though the JDBC driver doesn't actually deal with the value of catalog. JNI call is to be implemented in later commits. * [AD-543] format change on column_meta.cpp * [AD-543] remove JNI wrapper code for getShort and its unit test reason: getShort JNI wrapper method call was implemented with the intent to use it for column metadata value SOURCE_DATA_TYPE (for getting the column metadata from the resultSet returned by getColumns), which is a short. However, ODBC driver does not need SOURCE_DATA_TYPE, thus getShort is of no use to JDBC at this point and should be removed. * [AD-543] remove unneeded JDBC enum values * those values will not be needed in ODBC * [AD-543] update formatting of column_metadata_query.cpp * [AD-543] add skeleton code for getColumn * Remove unintended changes * Add additional tests * Revert "Merge branch 'affonsov/ad-516/mongocpp-tracercode' into andiem/ad-523/integrate_dsn_settings" This reverts commit 6d3fc50d8c74e10840fcae6ce60d5e0cddc89d08, reversing changes made to a399cdc7305083d1583d5ecb3c99505d5a7b8bf6. * [AD-543] add JDBC types to ODBC * the values are copied from the JdbcType Enum class in JdbcTye.java file in DocumentDB JDBC driver codebase * [AD-543] implement BinaryToSqlType function to switch on JDBC type values * Revert merge with mongocpp tracer code * [AD-543] build error fix: change JDBC type from int8_t to int16_t * some of the values of JDBC Type (e.g.,2009, 2012) would overflow if the value is int8_t. * return type for function SqlTypeToBinary (which returns JDBC type) is changed to int16_t as well * [AD-543] add catalog as parameter to ExecuteGetColumnsMetaQuery * Add ssh tunnel to github workflows * [AD-543] fix build errors on git remote * calls ReadColumnMetaVector with 2 arguments instead of 3 * define ReadColumnMetaVector function * [AD-543] make SqlTypeToBinary return int16_t instead * Update .clang-format change indent width and tab width back to 4 * Fix mac build errros * [AD-543] make ReadOnSuccess accept resultSet as a parameter * Fix mac build errors * [AD-543] make BinaryToSqlType accept int16_t as parameter because JDBC binary types are int16_t * [AD-543] construct resultSet global object in MakeRequestGetColumnsMeta * [AD-543] implement SqlToBinaryType function * default return type is Jdbc binary * make function return inside the switch statement to make it consistent with other functions in type_traits name space * [AD-543] in BinaryToSqlType, map Jdbc type ROWID to SQL binary * map JDBC numeric to SQL numeric * and refactor changes: remove white space * [AD-543] update IsSqlTypeSupported to align with SqlToBinaryType function * some reordering occurred to match the ordering of SqlToBinaryType function * SQL_REAL and SQL_NUMERIC become supported, but SQL_GUID is no longer supported * [AD-543] update BinaryTypeToSqlTypeName parameter type from int8_t to int16_t * [AD-543] implement BinaryTypeToSqlTypeName * [AD-543] map Jdbc type VARBINARY to SQL_BINARY in BinaryToSqlType * [AD-543] refactor: move comment to show ignite original code * [AD-543] define SqlTypeName constants * added constants: REAL, NUMERIC, LONGVARCHAR, LONGVARBINARY, SQL_NULL * [AD-543] update SqlTypeColumnSize * added case for SQL NULL type (return 1) * [AD-543] replace Ignite type constants with Documentdb Jdbc type constants in type_info_query.cpp * [AD-543] update SqlTypeTransferLength * added case for SQL NULL type (return 1) * [AD-543] remove redundant return statement in BinaryTypeToSqlTypeName * update SqlTypeDisplaySize * added case for SQL NULL type (return 1) * [AD-543] implement BinaryTypeColumnSize to adapt Jdbc column_size mapping * [AD-543] move using namespace statement to be global instead of inside local functions * [AD-543] mark sql tinyint type as unsigned * previously in Ignite, boolean False (which stands for the type being signed) is returned for SQL tinyint type. However, tinyint has value range (0,255), so it is in fact unsigned * [AD-543] add documentation warnings * warnings for syncing JDBC type values on the ODBC when any changes occur on the JDBC side. * [AD-543] update functions to match Bruce's (AD-594) changes * make ResultSetGetRow and ResultSetGetColumns return JniErrorCode instead of boolean * [AD-543] refactor ResultSetGetColumns function * [AD-543] update java_test to check JniErrorCode * [AD-543] adapt BinaryTypeColumnSize * SQL_DESC_LENGTH is returned for SQL character types * removed JDBC type mapping to column size because that was not needed * [AD-543] update SqlTypeColumnSize and SqlTypeTransferLength * group SQL_LONGVARCHAR with other character types * comment out the return of SQL_DESC_LENGTH in SqlTypeColumnSize because unsure what to return at this point. See comment. * comment out the return of SQL_DESC_OCTET_LENGTH in SqlTypeTransferLength because unsure what to return at this point. See comment. * [AD-543] return false for case SQL_TINYINT in SqlTypeUnsigned * [AD-543] update SqlTypeDisplaySize * group SQL_LONGVARCHAR with other character types * Improvements from code review * Remove unecessary change * [AD-543] change parameter type from int8_t to int16_t * Fix unit tests * Add ssh tunnel instructions to readme * [AD-543] remove comments * commented out code removed in type_traits namespace * [AD-543] change dataType parameter to int16_t * [AD-543] remove todo comments * [AD-543] remove or comment out code in message.cpp code that is removed/commented out: * ReadOnSuccess function. Reason: we don't have a reason to check if the read is successful with our current implementation. * QueryGetColumnsMetaResponse class. * [AD-543] adapt MakeRequestGetColumnsMeta * define GetColumn function * change the type of connection from SharedPointer object back to Connection object * [AD-543] remove comments in MakeRequestGetColumnsMeta * [AD-543] change connection object type in function header * Connection type should be the type for connection * [AD-543] replace Ignite type constants with DocDb type constants * [AD-543] add header files to include * [AD-543] remove columnsResultSet from statement.h * [AD-543] change parameter type in type_traits change parameter type from int8_t to int16_t for functions that accept the binary type, since DocDb Jdbc type constants are int16_t * [AD-543] implement NullabiltyToIsNullable * NullabiltyToIsNullable receives a nullablility value and returns a string. * call GetNullability in column_metadata_query because nullability would be saved * [AD-543] bugfix in MakeRequestGetColumnsMeta * call ReadColumnMetaVector instead of ReadTableMetaVector in MakeRequestGetColumnsMeta * implement ReadColumnMetaVector using ReadTableMetaVector as example * [AD-543] implement BinaryTypeCharOctetLength * for charOctetLength, the maximum length in bytes of a character or binary data type column. For all other data types, this column returns a NULL. * [AD-543] bugfix GetColumns * refactor: parameter name changed from column to coulmnNamePattern * fix typo * [AD-543] bugfix linking error * [AD-543] bugfix linking error * since the definition of the function is removed, the header file should also be gone * [AD-543] bugfix linking error * corrected function header to match the header in column_meta.h * [AD-543] implement getRemarks for column_meta * [AD-543] adapt Read function in column_meta * [AD-543] bugfix java.h header * change code to match header in java.cpp * [AD-543] bugfix: change data type update dataType to int16_t to match DocDb Jdbc Type constnats in binary_common.h * [AD-523] add using statement * add using statement for ignite::common::EncodeURIComponent. * [AD-543] add todo comment for datetime sub code * [AD-543] save ORDINAL_POSITION * GetOrdinalPosition implemented * meta::Read function is modified to accept previously recorded ordinal position as a parameter * Read function now reads ORDINAL_POSITION value from resultSet * [AD-543] add jira link for todo in comment * the link for implementing BinaryTypeDateTimeSub is added * [AD-543] refactor * [AD-543] update todo comments * added jira link for AD-615 * removed finished todo * [AD-543] save catalogName * GetCatalogName implemented * Read function now reads TABLE_CAT value from resultSet * [AD-543] add documentation for parameters in Read * [AD-543] save columnDef * GetColumnDef implemented * Read function now reads COLUMN_DEF value from resultSet * [AD-543] remove finished todo comment * [AD-543] save values in copy constructor and copy operator * add cataloName, columnDef, and ordinalPosition to be copied in the ColumnMeta copy constructor and copy operator * [AD-543] remove comments * removed commented out code * remove todo statement for making Jdbc type definition into a enum. That can be done in future tasks * [AD-543] remove comments * removed commented out code * [AD-543] replace Ignite type with Jdbc type * change occurred in table_metadata_query.cpp * [AD-543] * Added tests for getColumns and SQLColumns. * [AD-543] update columnsMeta * added COLUMN_DEF, SQL_DATA_TYPE, SQL_DATETIME_SUB, CHAR_OCTET_LENGTH, ORDINAL_POSITION to columnsMeta * reformatted push_back code calls for consistency * columnsMeta is a meta::ColumnMeta object that stores the metadata for the column metadata * [AD-543] add comments * the comments will be removed in later commits. However, I wanted to push it to keep a record * [AD-543] remove comments and commented out code * [AD-543] remove todo comments and code comment * [AD-543] implement unit tests * implement TestGetDataWithColumnsReturnsNone * implement TestGetDataWithColumnsReturnsMany * [AD-543] remove comments * [AD-543] refactor * [AD-543] * Improved test for SQLColumns. * [AD-543] * Improved test for SQLColumns. * [AD-543] remove unneeded comment * [AD-543] * Improved test for SQLColumns. * [AD-543] * Improved test for SQLColumns. * [AD-543] * Improved test for SQLColumns. * [AD-543] code review fix * replace DOCUMENTDB_JDBC_TYPE* with JDBC_TYPE_* * [AD-543] bugfix - copy dataType value * [AD-543] resolve NumPrecRadix test error * make SqlTypeNumPrecRadix return -1 on default, so that a null would be put in the buffer if num_prec_radix does not apply to the column, and the meta query test would pass. * [AD-543] reduce warning * initialize ordinalPosition variable * [AD-543] update meta_queries_test * SQL_NO_TOTAL is expected for column size, buffer length, and char octet length * [AD-543] Bugfix meta_queries_test * change buffer length type to SQL_INTEGER in the SQLBindCol function call * sql_data_type should have the same values as data_type * [AD-543] address code review comments * comment changes * typo fix * remove const as return type for NullabilityToIsNullable * [AD-543] code review change * add src/odbc/include/ignite/impl/binary/binary_common.h * modify include statements: replace include of ignite/impl/binary/binary_common.h with ignite/odbc/impl/binary/binary_common.h * [AD-543] add binary_common file under odbc and add include statements * [AD-543] copy impl/binary and impl/interop * some files are modified to be under ODBC namespace, and some files haven't been modified * [AD-543] remove odbc/binary folder * it was a mistake an unnecessary * [AD-543] refactor - format files in odbc/impl/binary * change the namespace from ignite::impl to ignite::odbc::impl * [AD-543] refactor - format files in odbc/impl/interop * change the namespace from ignite::impl to ignite::odbc::impl * [AD-543] remove binary_type_impl because it is not required * [AD-543] update files to look into ignite::odbc namespace * Revert "[AD-543] remove binary_type_impl because it is not required" This reverts commit 819a99b7d2e796dda99156fa6e254f3655a389f6. * [AD-543] remove include from jni_test * removed ignite::impl::binary namespace because it is not needed * [AD-543] copy binary_type file into odbc namespace * [AD-543] refactor include statements into odbc namespace * [AD-543] refactor namespace to be under odbc * [AD-543] refactor changes * [AD-543] refactor changes * [AD-543] refactor - copy files * copy binary/ files that are included in binary_reader_impl.h to odbc/ * [AD-543] refactor copied binary/ files * refactor the files to be under odbc namespace * [AD-543] refactor binary_reader_impl.h * [AD-543] refactor -> copy files * copy ignite/ files that are included in binary_reader_impl.h to ignite/odbc/ * [AD-543] refactor copied ignite/ files * refactor the files to be under odbc namespace * refactor document of odbc/binary/ files * [AD-543] update include statements to include files under odbc * [AD-543] copy ignite/binary/ files to ignite/odbc/binary/ * [AD-543] refactor copied ignite/binary/ files * refactor the files to be under odbc namespace * [AD-543] remove reference to namespace ignite::impl::binary * [AD-543] copy ignite/binary files to ignite/odbc/binary * [AD-543] refactor copied ignite/binary/ files * refactor the files to be under odbc namespace * [AD-543] code change from code review comment * [AD-543] change odbc files to use odbc namespace * [AD-543] refactor * update include statements to be in odbc namespace * [AD-543] refactor changes * [AD-543] copy .cpp files to odbc folder * [AD-543] refactor copied files * refactor the files to be under odbc namespace * [AD-543] refactor objects under odbc space * [AD-543] add using statement * reason: on GitHub Actions, errors show when the complier thinks ignite::IgniteError is used instead of ignite::odbc::IgniteError. * [AD-543] refactor include statements * refactored to include header files from odbc/binary_common.h * refactored ignite::impl to ignite:odbc::impl * [AD-543] refactor changes * add using odbc namespace statements * [AD-543] modify cmakelist * included newly copied .cpp files * [AD-543] refactor column_test * [AD-543] refactor changes * [AD-543] address code review comments * add new line at end of file * move { to be on the same line * [AD-543] fix typo in test names * [AD-543] address code review comments * [AD-543] address code review comment * simply to nullptr * [AD-543] improvement from code review * [AD-543] change SQL_FLOAT back to 4 bytes * [AD-543] simplify resultSet object creation * [AD-543] indicate nullability property * changed ColumnMeta constructor to include nullability as a parameter. * nullability property is implemented in column_metadata_query.cpp and table_metadata_query.cpp. * issue AD-626 created for indicating the nullability in files type_info_query.cpp, special_coulmns_query.cpp, primary_keys_query.cpp, and foreign_keys_query.cpp: https://bitquill.atlassian.net/browse/AD-626 * [AD-543] improvements from code review comments * change nullability to NO_NULL for TABLE_NAME and TABLE_TYPE * [AD-543] refactor from code review comments Co-authored-by: Andie Montoya <[email protected]> Co-authored-by: Bruce Irschick <[email protected]> Co-authored-by: Affonso Vieira <[email protected]> Co-authored-by: Gary Atwal <[email protected]> * [AD-543] Adaption SQLColumns Return Columns metadata (#30) * [AD-522] resolve build errors after merge * fix bug for schema name not correctly loaded on the config window * removed unnecessary headers * [AD-427] Added ResultSet.next and ResultSet.GetString() * [AD-522] address code review comments * change to enum class type for read_preference.h and scan_method.h * change the way enum class objects are read * add static cast to enum types so SetSelection function can work with it * refactor - removed unnecessary comments * refactor - changes code doc in connection_string_parser.h * [AD-521] implement tests for JNI wrapper code * test for TestDocumentDbConnectionGetSshTunnelPortSshTunnelNotActive is not yet active, need to be enabled when we can get external SSH tunnel working. * bug fix: re-implemented DocumentDbConnectionGetSshLocalPort and DocumentDbConnectionIsSshTunnelActive. connection.Get()->GetRef() is passed as first parameter because jobject is required for CallIntMethod and CallBooleanMethod. * better JNI wrapper code is needed in the future so warnings/errors pop up when we pass jobject instead of jclass to the methods. * [AD-521] refactor - remove comments and commented out code * fixing connection uri and instance ptr * fixing merge connection string * refactoring fixing mongo instance happen more than once * [AD-589] implement JNI method call for GetDatabaseMetadata * define the method constant for DocumentDbConnection.getDatabaseMetadata() * create JNI wrapper function for DocumentDbConnection.getMetaData * [AD-589] implement unit test for DocumentDbConnection.getMetaData * fixing mac run test error * [AD-521] add calls to AutoCloseConnection in unit tests * pass & errInfo instead of * errInfo in DocumentDbConnectionGetSshLocalPort and DocumentDbConnectionIsSshTunnelActive. * [AD-521] remove unnecessary comment * [AD-589] fix merge issues * I missed this part of code when I was resolving the merge conflicts. Now they are corrected * [AD-589] update getMetaData JNI wrapper code to pass &errInfo * implement unit test for getMetaData * [AD-589] implement JNI wrapper for DocumentDbDatabaseSchemaMetadataGetSchemaName * implement Java class for * define constant for DocumentDbDatabaseSchemaMetadataGetSchemaName * add empty test function for TestDocumentDbDatabaseSchemaMetadataGetSchemaName * [AD-589] implement unit test for DbDatabaseSchemaMetadataGetSchemaName * cmakelist cleanup * [AD-521] Updated JDBC driver version. (#19) ### Summary [AD-521] Updated JDBC driver version. ### Description * Updated JDBC driver version to 1.1.1 ### Related Issue https://bitquill.atlassian.net/browse/AD-521 * [AD-490] Add performance test. (#15) * Add performance test. * Replace include header odbcinst.h with odbc_constants.h. * Revert header file odbc_constant.h to odbcinst.h. * Include odbcinst.h for windows only. * Revert: include odbcinst.h for windows only. * Update performance test cmake file to include ODBC_INCLUDE_DIRS. * Update performance test cmake file to find package ODBC REQUIRED. * Fix error in performance_test_runner.cpp. * Link to performance test to odbc library in cmake file. * Link performance test to odbc library for windows. * Update checks.yml to continue on error. * Change PerformanceTests to tests. * Change PerformanceTests to tests in file performance_test_runner.h. * Update Java installation instructions. * Update comments. * Deallocate env, stmt, conn handles in functions when no longer needed. * Restructure perf test folder (lib, include, src sub directories created). * Rename 'it_odbc_helper.(h,cpp)' to 'performance_odbc_helper.(h,cpp)'. * Add new line at end of file. * Deallocate conn, env, stmt handles appropriately. Capitilize first letter of function names. * Update perf test documentation. * Use cmake latest for windows build. * Remove dsn_config.cpp from mac builds. * Attempt to fix mac build error. * Revert: Attempt to fix mac build error. * 2nd attempt to fix mac build error. * Attempt to fix macos build. * Attempt to fix macos build. * Attempt to fix macos build. * Attempt to fix macos build. * Include link to csv parser github repo in NOTICE file. * Add newline at EOF. * Remove try catch blocks for catching all errors and rethrowing same error. Replace NULL with nullptr. * Revert name change for CSV parser NOTICE file back to LICENSE file. * [AD-521] Updated JDBC driver version - part 2. (#20) ### Summary [AD-521] Updated JDBC driver version - part 2. ### Description Add update to 2 YAML files that it picks it up in GitHub workflow. ### Related Issue https://bitquill.atlassian.net/browse/AD-521 * Update CMakeLists.txt Removing changes from networklib * WIP - Add building jdbc connection string from config * [AD-521] refactor - change case of ssh to SSH for consistency * reverting dummy_test changing boost link on odbc_test * [AD-589] address code review comments * rename DocumentDbConnectionGetMetaData to DocumentDbConnectionGetDatabaseMetaData * [AD-589] change case from MetaData to Metadata to match Java method name * [AD-543] JNI wrapper code for DatabaseMetaDataGetColumns * [AD-543] unit test for DatabaseMetaData.getColumns looks at: * TABLE_CAT, TABLE_SCHEM, TABLE_NAME, COLUMN_NAME, ORDINAL_POSITION * [AD-523] Internal SSH tunnel tests passing again but more tests needed * Adjust tests - all tests passing again but need to add more * minor refactoring, added error handling integrated with ssh internal tunnel feature * [AD-543] implement ResultSetGetShort * JNI wrapper code for both getShortByIndex and getShortByName methods from resultSet class are implemented * [AD-589] refactor: change from metaData to metadata changes occurred in: * DocumentDbConnectionGetDatabaseMetadata * DocumentDbDatabaseSchemaMetadataGetSchemaName * TestDocumentDbConnectionGetDatabaseMetadata * TestDocumentDbDatabaseSchemaMetadataGetSchemaName * fixing nits * removing unecessary changes extracting get ssh tunnel port to its own method * removing extra line * [AD-543] implement ResultSet.getRow() Jni wrapper code * this function is for getting the number of rows in the resultSet. The row number on the last row would be the size of the resultSet * unit test included by calling getRow in TestDatabaseMetaDataGetTables and TestDatabaseMetaDataGetColumns * [AD-543] implement unit test for getShort function * [AD-543] Define different enum types * changing parameters ordering * changing some names * Add tests * [AD-543] update clang format * [AD-543] change format for column_meta.h to comply with Google style * [AD-543] update draft code * change ReadColumnMetaVector function to receive a resultSet object instead of original ignite parameters * [AD-543] change format for column_meta.h to comply with Google style on more files * [AD-543] formatting change * [AD-543] adapt ColumnsMetaQuery to accept catalog as a parameter Functions affected: * ColumnMetadataQuery * ExecuteGetColumnsMetaQuery * InternalExecuteGetColumnsMetaQuery Reason for change: since the JNI call to getColumns accepts catalog as a parameter, it is required for those 3 functions to essentially pass catalog as a parameter as well, even though the JDBC driver doesn't actually deal with the value of catalog. JNI call is to be implemented in later commits. * [AD-543] format change on column_meta.cpp * [AD-543] remove JNI wrapper code for getShort and its unit test reason: getShort JNI wrapper method call was implemented with the intent to use it for column metadata value SOURCE_DATA_TYPE (for getting the column metadata from the resultSet returned by getColumns), which is a short. However, ODBC driver does not need SOURCE_DATA_TYPE, thus getShort is of no use to JDBC at this point and should be removed. * [AD-543] remove unneeded JDBC enum values * those values will not be needed in ODBC * [AD-543] update formatting of column_metadata_query.cpp * [AD-543] add skeleton code for getColumn * Remove unintended changes * Add additional tests * Revert "Merge branch 'affonsov/ad-516/mongocpp-tracercode' into andiem/ad-523/integrate_dsn_settings" This reverts commit 1976ecbd966834d0da26eb959af04f1b517d9894, reversing changes made to 398b1fb39dd4b277c0a124e01d96b5d5e65db3ac. * [AD-543] add JDBC types to ODBC * the values are copied from the JdbcType Enum class in JdbcTye.java file in DocumentDB JDBC driver codebase * [AD-543] implement BinaryToSqlType function to switch on JDBC type values * Revert merge with mongocpp tracer code * [AD-543] build error fix: change JDBC type from int8_t to int16_t * some of the values of JDBC Type (e.g.,2009, 2012) would overflow if the value is int8_t. * return type for function SqlTypeToBinary (which returns JDBC type) is changed to int16_t as well * [AD-543] add catalog as parameter to ExecuteGetColumnsMetaQuery * Add ssh tunnel to github workflows * [AD-543] fix build errors on git remote * calls ReadColumnMetaVector with 2 arguments instead of 3 * define ReadColumnMetaVector function * [AD-543] make SqlTypeToBinary return int16_t instead * Update .clang-format change indent width and tab width back to 4 * Fix mac build errros * [AD-543] make ReadOnSuccess accept resultSet as a parameter * Fix mac build errors * [AD-543] make BinaryToSqlType accept int16_t as parameter because JDBC binary types are int16_t * [AD-543] construct resultSet global object in MakeRequestGetColumnsMeta * [AD-543] implement SqlToBinaryType function * default return type is Jdbc binary * make function return inside the switch statement to make it consistent with other functions in type_traits name space * [AD-543] in BinaryToSqlType, map Jdbc type ROWID to SQL binary * map JDBC numeric to SQL numeric * and refactor changes: remove white space * [AD-543] update IsSqlTypeSupported to align with SqlToBinaryType function * some reordering occurred to match the ordering of SqlToBinaryType function * SQL_REAL and SQL_NUMERIC become supported, but SQL_GUID is no longer supported * [AD-543] update BinaryTypeToSqlTypeName parameter type from int8_t to int16_t * [AD-543] implement BinaryTypeToSqlTypeName * [AD-543] map Jdbc type VARBINARY to SQL_BINARY in BinaryToSqlType * [AD-543] refactor: move comment to show ignite original code * [AD-543] define SqlTypeName constants * added constants: REAL, NUMERIC, LONGVARCHAR, LONGVARBINARY, SQL_NULL * [AD-543] update SqlTypeColumnSize * added case for SQL NULL type (return 1) * [AD-543] replace Ignite type constants with Documentdb Jdbc type constants in type_info_query.cpp * [AD-543] update SqlTypeTransferLength * added case for SQL NULL type (return 1) * [AD-543] remove redundant return statement in BinaryTypeToSqlTypeName * update SqlTypeDisplaySize * added case for SQL NULL type (return 1) * [AD-543] implement BinaryTypeColumnSize to adapt Jdbc column_size mapping * [AD-543] move using namespace statement to be global instead of inside local functions * [AD-543] mark sql tinyint type as unsigned * previously in Ignite, boolean False (which stands for the type being signed) is returned for SQL tinyint type. However, tinyint has value range (0,255), so it is in fact unsigned * [AD-543] add documentation warnings * warnings for syncing JDBC type values on the ODBC when any changes occur on the JDBC side. * [AD-543] update functions to match Bruce's (AD-594) changes * make ResultSetGetRow and ResultSetGetColumns return JniErrorCode instead of boolean * [AD-543] refactor ResultSetGetColumns function * [AD-543] update java_test to check JniErrorCode * [AD-543] adapt BinaryTypeColumnSize * SQL_DESC_LENGTH is returned for SQL character types * removed JDBC type mapping to column size because that was not needed * [AD-543] update SqlTypeColumnSize and SqlTypeTransferLength * group SQL_LONGVARCHAR with other character types * comment out the return of SQL_DESC_LENGTH in SqlTypeColumnSize because unsure what to return at this point. See comment. * comment out the return of SQL_DESC_OCTET_LENGTH in SqlTypeTransferLength because unsure what to return at this point. See comment. * [AD-543] return false for case SQL_TINYINT in SqlTypeUnsigned * [AD-543] update SqlTypeDisplaySize * group SQL_LONGVARCHAR with other character types * Improvements from code review * Remove unecessary change * [AD-543] change parameter type from int8_t to int16_t * Fix unit tests * Add ssh tunnel instructions to readme * [AD-543] remove comments * commented out code removed in type_traits namespace * [AD-543] change dataType parameter to int16_t * [AD-543] remove todo comments * [AD-543] remove or comment out code in message.cpp code that is removed/commented out: * ReadOnSuccess function. Reason: we don't have a reason to check if the read is successful with our current implementation. * QueryGetColumnsMetaResponse class. * [AD-543] adapt MakeRequestGetColumnsMeta * define GetColumn function * change the type of connection from SharedPointer object back to Connection object * [AD-543] remove comments in MakeRequestGetColumnsMeta * [AD-543] change connection object type in function header * Connection type should be the type for connection * [AD-543] replace Ignite type constants with DocDb type constants * [AD-543] add header files to include * [AD-543] remove columnsResultSet from statement.h * [AD-543] change parameter type in type_traits change parameter type from int8_t to int16_t for functions that accept the binary type, since DocDb Jdbc type constants are int16_t * [AD-543] implement NullabiltyToIsNullable * NullabiltyToIsNullable receives a nullablility value and returns a string. * call GetNullability in column_metadata_query because nullability would be saved * [AD-543] bugfix in MakeRequestGetColumnsMeta * call ReadColumnMetaVector instead of ReadTableMetaVector in MakeRequestGetColumnsMeta * implement ReadColumnMetaVector using ReadTableMetaVector as example * [AD-543] implement BinaryTypeCharOctetLength * for charOctetLength, the maximum length in bytes of a character or binary data type column. For all other data types, this column returns a NULL. * [AD-543] bugfix GetColumns * refactor: parameter name changed from column to coulmnNamePattern * fix typo * [AD-543] bugfix linking error * [AD-543] bugfix linking error * since the definition of the function is removed, the header file should also be gone * [AD-543] bugfix linking error * corrected function header to match the header in column_meta.h * [AD-543] implement getRemarks for column_meta * [AD-543] adapt Read function in column_meta * [AD-543] bugfix java.h header * change code to match header in java.cpp * [AD-543] bugfix: change data type update dataType to int16_t to match DocDb Jdbc Type constnats in binary_common.h * [AD-523] add using statement * add using statement for ignite::common::EncodeURIComponent. * [AD-543] add todo comment for datetime sub code * [AD-543] save ORDINAL_POSITION * GetOrdinalPosition implemented * meta::Read function is modified to accept previously recorded ordinal position as a parameter * Read function now reads ORDINAL_POSITION value from resultSet * [AD-543] add jira link for todo in comment * the link for implementing BinaryTypeDateTimeSub is added * [AD-543] refactor * [AD-543] update todo comments * added jira link for AD-615 * removed finished todo * [AD-543] save catalogName * GetCatalogName implemented * Read function now reads TABLE_CAT value from resultSet * [AD-543] add documentation for parameters in Read * [AD-543] save columnDef * GetColumnDef implemented * Read function now reads COLUMN_DEF value from resultSet * [AD-543] remove finished todo comment * [AD-543] save values in copy constructor and copy operator * add cataloName, columnDef, and ordinalPosition to be copied in the ColumnMeta copy constructor and copy operator * [AD-543] remove comments * removed commented out code * remove todo statement for making Jdbc type definition into a enum. That can be done in future tasks * [AD-543] remove comments * removed commented out code * [AD-543] replace Ignite type with Jdbc type * change occurred in table_metadata_query.cpp * [AD-543] * Added tests for getColumns and SQLColumns. * [AD-543] update columnsMeta * added COLUMN_DEF, SQL_DATA_TYPE, SQL_DATETIME_SUB, CHAR_OCTET_LENGTH, ORDINAL_POSITION to columnsMeta * reformatted push_back code calls for consistency * columnsMeta is a meta::ColumnMeta object that stores the metadata for the column metadata * [AD-543] add comments * the comments will be removed in later commits. However, I wanted to push it to keep a record * [AD-543] remove comments and commented out code * [AD-543] remove todo comments and code comment * [AD-543] implement unit tests * implement TestGetDataWithColumnsReturnsNone * implement TestGetDataWithColumnsReturnsMany * [AD-543] remove comments * [AD-543] refactor * [AD-543] * Improved test for SQLColumns. * [AD-543] * Improved test for SQLColumns. * [AD-543] remove unneeded comment * [AD-543] * Improved test for SQLColumns. * [AD-543] * Improved test for SQLColumns. * [AD-543] * Improved test for SQLColumns. * [AD-543] code review fix * replace DOCUMENTDB_JDBC_TYPE* with JDBC_TYPE_* * [AD-543] bugfix - copy dataType value * [AD-543] resolve NumPrecRadix test error * make SqlTypeNumPrecRadix return -1 on default, so that a null would be put in the buffer if num_prec_radix does not apply to the column, and the meta query test would pass. * [AD-543] reduce warning * initialize ordinalPosition variable * [AD-543] update meta_queries_test * SQL_NO_TOTAL is expected for column size, buffer length, and char octet length * [AD-543] Bugfix meta_queries_test * change buffer length type to SQL_INTEGER in the SQLBindCol function call * sql_data_type should have the same values as data_type * [AD-543] address code review comments * comment changes * typo fix * remove const as return type for NullabilityToIsNullable * [AD-543] code review change * add src/odbc/include/ignite/impl/binary/binary_common.h * modify include statements: replace include of ignite/impl/binary/binary_common.h with ignite/odbc/impl/binary/binary_common.h * [AD-543] add binary_common file under odbc and add include statements * [AD-543] copy impl/binary and impl/interop * some files are modified to be under ODBC namespace, and some files haven't been modified * [AD-543] remove odbc/binary folder * it was a mistake an unnecessary * [AD-543] refactor - format files in odbc/impl/binary * change the namespace from ignite::impl to ignite::odbc::impl * [AD-543] refactor - format files in odbc/impl/interop * change the namespace from ignite::impl to ignite::odbc::impl * [AD-543] remove binary_type_impl because it is not required * [AD-543] update files to look into ignite::odbc namespace * Revert "[AD-543] remove binary_type_impl because it is not required" This reverts commit a36e52270b19198879a623e7036a236406326f45. * [AD-543] remove include from jni_test * removed ignite::impl::binary namespace because it is not needed * [AD-543] copy binary_type file into odbc namespace * [AD-543] refactor include statements into odbc namespace * [AD-543] refactor namespace to be under odbc * [AD-543] refactor changes * [AD-543] refactor changes * [AD-543] refactor - copy files * copy binary/ files that are included in binary_reader_impl.h to odbc/ * [AD-543] refactor copied binary/ files * refactor the files to be under odbc namespace * [AD-543] refactor binary_reader_impl.h * [AD-543] refactor -> copy files * copy ignite/ files that are included in binary_reader_impl.h to ignite/odbc/ * [AD-543] refactor copied ignite/ files * refactor the files to be under odbc namespace * refactor document of odbc/binary/ files * [AD-543] update include statements to include files under odbc * [AD-543] copy ignite/binary/ files to ignite/odbc/binary/ * [AD-543] refactor copied ignite/binary/ files * refactor the files to be under odbc namespace * [AD-543] remove reference to namespace ignite::impl::binary * [AD-543] copy ignite/binary files to ignite/odbc/binary * [AD-543] refactor copied ignite/binary/ files * refactor the files to be under odbc namespace * [AD-543] code change from code review comment * [AD-543] change odbc files to use odbc namespace * [AD-543] refactor * update include statements to be in odbc namespace * [AD-543] refactor changes * [AD-543] copy .cpp files to odbc folder * [AD-543] refactor copied files * refactor the files to be under odbc namespace * [AD-543] refactor objects under odbc space * [AD-543] add using statement * reason: on GitHub Actions, errors show when the complier thinks ignite::IgniteError is used instead of ignite::odbc::IgniteError. * [AD-543] refactor include statements * refactored to include header files from odbc/binary_common.h * refactored ignite::impl to ignite:odbc::impl * [AD-543] refactor changes * add using odbc namespace statements * [AD-543] modify cmakelist * included newly copied .cpp files * [AD-543] refactor column_test * [AD-543] refactor changes * [AD-543] address code review comments * add new line at end of file * move { to be on the same line * [AD-543] fix typo in test names * [AD-543] address code review comments * [AD-543] address code review comment * simply to nullptr * [AD-543] improvement from code review * [AD-543] change SQL_FLOAT back to 4 bytes * [AD-543] simplify resultSet object creation * [AD-543] indicate nullability property * changed ColumnMeta constructor to include nullability as a parameter. * nullability property is implemented in column_metadata_query.cpp and table_metadata_query.cpp. * issue AD-626 created for indicating the nullability in files type_info_query.cpp, special_coulmns_query.cpp, primary_keys_query.cpp, and foreign_keys_query.cpp: https://bitquill.atlassian.net/browse/AD-626 * [AD-543] improvements from code review comments * change nullability to NO_NULL for TABLE_NAME and TABLE_TYPE * [AD-543] refactor from code review comments Co-authored-by: Andie Montoya <[email protected]> Co-authored-by: Bruce Irschick <[email protected]> Co-authored-by: Affonso Vieira <[email protected]> Co-authored-by: Gary Atwal <[email protected]> * [AD-612] Publish/posting TestResults (#34) * [AD-612] uncomment code for posting test results * [AD-612] change to always upload test results * [AD-612] implement boost log * format of test results is set as JUnit * [AD-612] make macos build post test results with EnricoMi * [AD-612]make windows build post test results with EnricoMi * enable post results for win32 build * [AD-612] change keyword from path to files * files keyword is supported with EnricoMi, not path * [AD-612] change upload test result to composite action * [AD-612] modify action for win32 * modified publish unit test results from container action to composite action for win32 * [AD-612] generate test report inside /bin folder * moved code that generates test results file to odbc_test_suite.cpp, so that the code is not in a .h file. Now the test result is generated under the same folder when bin/Release/ignite-odbc-tests.exe or bin/Debug/ignite-odbc-tests.exe is called * [AD-612] modify path to test result * path to test result is set inside ODBC_BIN_PATH because that's where the file would be generated * comments added for historical records * [AD-612] refactor - remove comments * [AD-612] debug change path to test result .xml file * [AD-612] refactor * remove comments in win-build.yml * [AD-612] remove define boost_test_module * reason: the code is not reflected on the test result for unknown reasons. * [AD-612] refactor * remove empty lines and spaces * [AD-612] specify the test report filename * [AD-612] separate comments for different builds * [AD-612] separate comments for different builds * add value for check_name parameter as well * [AD-612] add OS version name to comments * [AD-612] specify environment version on Yaml * newest environments are used. Specify the version so we know what version we're working on * MacOS environment will be macOS Big Sur 11 * Windows environment will be Windows 2022 * [AD-612] Publish/posting TestResults (#34) * [AD-612] uncomment code for posting test results * [AD-612] change to always upload test results * [AD-612] implement boost log * format of test results is set as JUnit * [AD-612] make macos build post test results with EnricoMi * [AD-612]make windows build post test results with EnricoMi * enable post results for win32 build * [AD-612] change keyword from path to files * files keyword is supported with EnricoMi, not path * [AD-612] change upload test result to composite action * [AD-612] modify action for win32 * modified publish unit test results from container action to composite action for win32 * [AD-612] generate test report inside /bin folder * moved code that generates test results file to odbc_test_suite.cpp, so that the code is not in a .h file. Now the test result is generated under the same folder when bin/Release/ignite-odbc-tests.exe or bin/Debug/ignite-odbc-tests.exe is called * [AD-612] modify path to test result * path to test result is set inside ODBC_BIN_PATH because that's where the file would be generated * comments added for historical records * [AD-612] refactor - remove comments * [AD-612] debug change path to test result .xml file * [AD-612] refactor * remove comments in win-build.yml * [AD-612] remove define boost_test_module * reason: the code is not reflected on the test result for unknown reasons. * [AD-612] refactor * remove empty lines and spaces * [AD-612] specify the test report filename * [AD-612] separate comments for different builds * [AD-612] separate comments for different builds * add value for check_name parameter as well * [AD-612] add OS version name to comments * [AD-612] specify environment version on Yaml * newest environments are used. Specify the version so we know what version we're working on * MacOS environment will be macOS Big Sur 11 * Windows environment will be Windows 2022 * [AD-607] [ODBC] Create infrastructure for creating test data. (#35) ### Summary [AD-607] [ODBC] Create infrastructure for creating test data. ### Description Create environment for running test against an instance of MongoDB running in Docker container. - [x] Update to workflow yaml files to run local mongo server on each platform. - [x] Script to install data - [x] Modifications to connection handling to allow non-TLS connections - [x] Add simple test to prove that test can be run against MongoDB instance running in docker container. ### Related Issue https://bitquill.atlassian.net/browse/AD-607 * [AD-607] [ODBC] Create infrastructure for creating test data. * [AD-607] [ODBC] * Correct MacOS/Linux script. * [AD-607] [ODBC] * Add start and stop scripts. * [AD-607] [ODBC] * Add start/import/stop docker steps in Windows build. * [AD-607] [ODBC] * Add start/import/stop docker steps in MacOS build. * [AD-607] [ODBC] * Correct header declaration syntax. * [AD-607] [ODBC] * Correct docker scripts * [AD-607] [ODBC] * Correct docker scripts * [AD-607] [ODBC] * Correct docker scripts * [AD-607] [ODBC] * Correct docker scripts * [AD-607] [ODBC] * Correct docker scripts * [AD-607] [ODBC] * Correct docker scripts * [AD-607] [ODBC] * Correct docker scripts * [AD-607] [ODBC] * Correct docker scripts * [AD-607] [ODBC] * Replace docker with direct startup of MongoDB action. * [AD-607] [ODBC] * Replace docker with direct startup of MongoDB action. * [AD-607] [ODBC] * Test if mongosh and mongoimport are available. * [AD-607] [ODBC] * Test if mongosh and mongoimport are available. * [AD-607] [ODBC] * Test if mongosh connects using username and password. * [AD-607] [ODBC] * Test if mongosh connects using username and password. * [AD-607] [ODBC] * Test if mongosh connects using username and password. * [AD-607] [ODBC] * Test if mongosh connects using username and password. * [AD-607] [ODBC] * Install mongodb server via Chocolatey * [AD-607] [ODBC] * Install mongodb server via Chocolatey * [AD-607] [ODBC] * Try to get the path to config file. * [AD-607] [ODBC] * Refactor mongodb installation * [AD-607] [ODBC] * Work on MacOS MongoDB setup * [AD-607] [ODBC] * Rework on MacOS MongoDB setup * [AD-607] [ODBC] * Rework on MacOS MongoDB setup * [AD-607] [ODBC] * Rework on MacOS MongoDB setup * [AD-607] [ODBC] * Rework on MacOS MongoDB setup * [AD-607] [ODBC] * Correct line endings. * [AD-607] [ODBC] * Debug sed command. * [AD-607] [ODBC] * Change sed command. * [AD-607] [ODBC] * Change sed command. * [AD-607] [ODBC] * Fixed install script for MacOS. * [AD-607] [ODBC] * Clean-up yaml workflows. * [AD-607] [ODBC] * Clean-up yaml workflows. * [AD-607] [ODBC] * Correct DSN driver name. * [AD-607] [ODBC] * Correct test username and password. * [AD-607] [ODBC] * Improve C++ mongo connection. * [AD-607] [ODBC] * Improve java.cpp implementation of SharedPointer use. * [AD-607] [ODBC] * Improve connection.cpp implementation and README.md * Merge branch 'develop' into birschick-bq/ad-607/test_infrastructure * [AD-607] [ODBC] * Correct MacOS build by importing test data. * [AD-607] [ODBC] * Improvements from code review. * [AD-607] [ODBC] Create infrastructure for creating test data. (#35) ### Summary [AD-607] [ODBC] Create infrastructure for creating test data. ### Description Create environment for running test against an instance of MongoDB running in Docker container. - [x] Update to workflow yaml files to run local mongo server on each platform. - [x] Script to install data - [x] Modifications to connection handling to allow non-TLS connections - [x] Add simple test to prove that test can be run against MongoDB instance running in docker container. ### Related Issue https://bitquill.atlassian.net/browse/AD-607 * [AD-607] [ODBC] Create infrastructure for creating test data. * [AD-607] [ODBC] * Correct MacOS/Linux script. * [AD-607] [ODBC] * Add start and stop scripts. * [AD-607] [ODBC] * Add start/import/stop docker steps in Windows build. * [AD-607] [ODBC] * Add start/import/stop docker steps in MacOS build. * [AD-607] [ODBC] * Correct header declaration syntax. * [AD-607] [ODBC] * Correct docker scripts * [AD-607] [ODBC] * Correct docker scripts * [AD-607] [ODBC] * Correct docker scripts * [AD-607] [ODBC] * Correct docker scripts * [AD-607] [ODBC] * Correct docker scripts * [AD-607] [ODBC] * Correct docker scripts * [AD-607] [ODBC] * Correct docker scripts * [AD-607] [ODBC] * Correct docker scripts * [AD-607] [ODBC] * Replace docker with direct startup of MongoDB action. * [AD-607] [ODBC] * Replace docker with direct startup of MongoDB action. * [AD-607] [ODBC] * Test if mongosh and mongoimport are available. * [AD-607] [ODBC] * Test if mongosh and mongoimport are available. * [AD-607] [ODBC] * Test if mongosh connects using username and password. * [AD-607] [ODBC] * Test if mongosh connects using username and password. * [AD-607] [ODBC] * Test if mongosh connects using username and password. * [AD-607] [ODBC] * Test if mongosh connects using username and password. * [AD-607] [ODBC] * Install mongodb server via Chocolatey * [AD-607] [ODBC] * Install mongodb server via Chocolatey * [AD-607] [ODBC] * Try to get the path to config file. * [AD-607] [ODBC] * Refactor mongodb installation * [AD-607] [ODBC] * Work on MacOS MongoDB setup * [AD-607] [ODBC] * Rework on MacOS MongoDB setup * [AD-607] [ODBC] * Rework on MacOS MongoDB setup * [AD-607] [ODBC] * Rework on MacOS MongoDB setup * [AD-607] [ODBC] * Rework on MacOS MongoDB setup * [AD-607] [ODBC] * Correct line endings. * [AD-607] [ODBC] * Debug sed command. * [AD-607] [ODBC] * Change sed command. * [AD-607] [ODBC] * Change sed command. * [AD-607] [ODBC] * Fixed install script for MacOS. * [AD-607] [ODBC] * Clean-up yaml workflows. * [AD-607] [ODBC] * Clean-up yaml workflows. * [AD-607] [ODBC] * Correct DSN driver name. * [AD-607] [ODBC] * Correct test username and password. * [AD-607] [ODBC] * Improve C++ mongo connection. * [AD-607] [ODBC] * Improve java.cpp implementation of SharedPointer use. * [AD-607] [ODBC] * Improve connection.cpp implementation and README.md * Merge branch 'develop' into birschick-bq/ad-607/test_infrastructure * [AD-607] [ODBC] * Correct MacOS build by importing test data. * [AD-607] [ODBC] * Improvements from code review. * Code Clean Up (#37) * removing binary dependcy from odbc project * removing extra warnings * removing build warning, removing network project * removing dummy test * creating new define to handle ignite_error_macros * Code Clean Up (#37) * removing binary dependcy from odbc project * removing extra warnings * removing build warning, removing network project * removing dummy test * creating new define to handle ignite_error_macros * [AD-634] [ODBC] PowerBI not showing up Tables on the Navigator (#39) ### Summary [AD-634] [ODBC] PowerBI not showing up Tables on the Navigator ### Description Handle table types in call to `SQLTables` as * nullptr * empty string * single value * comma-separated values * quoted values ### Related Issue https://bitquill.atlassian.net/browse/AD-634 * [AD-634] [ODBC] PowerBI not showing up Tables on the Navigator * [AD-634] * Improve include location. * [AD-634] * Simplify 'dequote' function to eliminate use of regex. * [AD-634] * Correct spacing and formatting. * [AD-634] [ODBC] PowerBI not showing up Tables on the Navigator (#39) ### Summary [AD-634] [ODBC] PowerBI not showing up Tables on the Navigator ### Description Handle table types in call to `SQLTables` as * nullptr * empty string * single value * comma-separated values * quoted values ### Related Issue https://bitquill.atlassian.net/browse/AD-634 * [AD-634] [ODBC] PowerBI not showing up Tables on the Navigator * [AD-634] * Improve include location. * [AD-634] * Simplify 'dequote' function to eliminate use of regex. * [AD-634] * Correct spacing and formatting. * Update README.md (#40) * fix typos * Update README.md (#40) * fix typos * [AD-636] Enable Exec query to return stub/empty query (#41) ### Summary [AD-636] Enable Exec query to return stub/empty query ### Description Always return SQL_NO_DATA with zero metadata. ### Related Issue https://bitquill.atlassian.net/browse/AD-636 * [AD-636] Enable Exec query to return stub/empty query * [AD-636] * Simplified test query. * Update queries_test.cpp [AD-636] * Changed database name. * [AD-636] Enable Exec query to return stub/empty query (#41) ### Summary [AD-636] Enable Exec query to return stub/empty query ### Description Always return SQL_NO_DATA with zero metadata. ### Related Issue https://bitquill.atlassian.net/browse/AD-636 * [AD-636] Enable Exec query to return stub/empty query * [AD-636] * Simplified test query. * Update queries_test.cpp [AD-636] * Changed database name. * [AD-651] update ReadMe (#43) * [AD-651] update .gitignore to include *DS_Store * .DS_Store is a file generated on MacOS, and should not be uploaded to GitHub * [AD-651] update readme * update ReadMe to include instructions for downloading mongodb driver * [AD-651] add command to register the ODBC driver on MacOS * [AD-651] add instructions for setting DOCUMENTDB_HOME * [AD-651] add example for JAVA_HOME for clarity * [AD-651] resolve code review feedback * [AD-651] change command for downloading mongo cxx driver * [AD-651] update ReadMe (#43) * [AD-651] update .gitignore to include *DS_Store * .DS_Store is a file generated on MacOS, and should not be uploaded to GitHub * [AD-651] update readme * update ReadMe to include instructions for downloading mongodb driver * [AD-651] add command to register the ODBC driver on MacOS * [AD-651] add instructions for setting DOCUMENTDB_HOME * [AD-651] add example for JAVA_HOME for clarity * [AD-651] resolve code review feedback * [AD-651] change command for downloading mongo cxx driver * [FIX] Columns with JDBC_TYPE_BIGINT is being returned as having DATA_TYPE -2 (BINARY) instead of -5 in SqlColumns (#44) * ODBC was returing the wrong data_type type conversion from int8 to uint8 was causing the isse * adding schema and table name in SQLCOLUMNS test * changing int8 to int16 * [FIX] Columns with JDBC_TYPE_BIGINT is being returned as having DATA_TYPE -2 (BINARY) instead of -5 in SqlColumns (#44) * ODBC was returing the wrong data_type type conversion from int8 to uint8 was causing the isse * adding schema and table name in SQLCOLUMNS test * changing int8 to int16 * [AD-608] Add support for nullable data (#38) * [AD-608] refactor change * [AD-608] implement boost::optional for ResultSetGetString * both ResultSetGetString by index and by column name are modified * [AD-608] update java_test to accommodate boost::optional * if value should be null, checking for optional value being non-existent is enabled, and if value should not be null, checking for optional value being existent is enabled * (* operator) is use for boost::optional<std::string>. For details, see https://www.boost.org/doc/libs/1_78_0/libs/optional/doc/html/boost_optional/quick_start.html * [AD-608] update result_set GetString * update to accommodate boost::optional<std::string> * [AD-608] update jni_test to accommodate boost::optional * if value should be null, checking for optional value being non-existent is enabled, and if value should not be null, checking for optional value being existent is enabled * (* operator) is use for boost::optional<std::string>. For details, see https://www.boost.org/doc/libs/1_78_0/libs/optional/doc/html/boost_optional/quick_start.html * [AD-608] add include boost/optional for jni_test.cpp * [AD-608] implement boost::optional<std::string> in column_meta * catalogName, schemaName, tableName, columnName, remarks, columnDef are now boost::optional<std::string> * [AD-608] make ColumnMeta constructor accept std::string as parameters again * [AD-608] define PutOptString function in ApplicationDataBuffer namespace * [AD-608] add include headers for boost/optional * <boost/optional/optional_io.hpp> header is included because boost::optional<T> needs to be returned. * [AD-608] change std::string to boost::optional in table_meta.h * [AD-608] call PutOptString in metadata_query * replace PutString with PutOptString inside column_metatdata_query and table_metadata_query * [AD-608] update BOOST_CHECK * since nullable Strings are now supported, set BOOST_CHECK_EQUAL to true instead of false. * remove todo comments * [AD-608] bugfix include * [AD-608] implement nullable int in java.cpp * [AD-608] update java_test to support nullable int * [AD-608] update resultSet to support nullable int * [AD-608] refactor/format changes * [AD-608] add checks for nullable strings * [AD-608] remove empty string initialization * [AD-608] implement optional int in application_buffer * [AD-608] make type_traits accept optional parameters * [AD-608] change NullabilityToIsNullable to accept int32_t * [AD-608] make column_meta support nullable int * make column_metadata_query call putOptInt*. * change columnType from uint8_t to int16_t, because data_type could be a negative value. * replace currentColumn.GetDataType() with columnType in GetColumn * [AD-608] add check for optional values for log_msg * [AD-608] remove wasNull from JNI calls * remove wasNull parameter from JNI calls * remove wasNull parameter from resultSet calls * [AD-608] add if check for log_msg * add (*) operator for GetDataType, since dataType is a boost::optional variable * [AD-608] remove wasNull * wasNull is no longer required since we have nullable int/short/strings etc * remove references of wasNull in function calls * remove wasNull in DocumentDbDatabaseSchemaMetadataGetSchemaName * remove BOOST_CHECK / BOOST_REQUIRE for wasNull * add BOOST_CHECK for intValue in jni_test * [AD-608] bugfix make Nullability::ToSql always return * [AD-608] resolve build errors caused by boost::optional * add if statement checks that combine the initialization of the optional object and the test. * [AD-608] change decimalDigits to re…
Summary
Setup Performance Test Framework
Description
Standalone odbc performance test framework integrated into project (does not use google test)
performance.exe that is created during build can accept command line arguments which has default values:
Input file must have following headers:
Output file has headers:
Test Plan CSV file attached
example:
Performance test was run on my local machine against AWS $Literal Test 4.0 performance database using mongodb connector for BI. Results are attached.
Not in scope: (separate tickets created for items below)
Related Issue
AD-490
Additional Reviewers
@affonsoBQ
@alexey-temnikov
@andiem-bq
@birschick-bq
Performance_Test_Plan.csv
Performance_Test_Results.csv