Skip to content

Commit

Permalink
Merge pull request #240 from vrogier/develop-v4.7.0
Browse files Browse the repository at this point in the history
v4.7.0 Release
  • Loading branch information
vrogier authored Jul 16, 2020
2 parents 8587fbe + db32380 commit 46ea653
Show file tree
Hide file tree
Showing 221 changed files with 83,872 additions and 61,734 deletions.
7 changes: 6 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -172,4 +172,9 @@ $RECYCLE.BIN/
# Mac desktop service store files
.DS_Store
*.opendb
/tests/packages/*.*

# Unit test files
/tests/packages/*.*
testlog.manifest
*.testlog
/nuget/*.nupkg
51 changes: 51 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,54 @@
2020-07-16 Version 4.7.0 Vincent Rogier [email protected]

* Enhancements (C API)

- Library internal design changes (preparing v5.0.0)
* OCILIB code base has been layered in 2 distinct API layers:
- Internal API that has now its own separate design
- v4.7.0 internal API, while matching the public one in this version, has most of its methods renamed
- It will evolve differently, preparing new public APIs for future versions
- Public APIs exposing features to clients
- v4.7.0 is exposing the same public API as previous versions
- v5.0.0 will expose a different API
- Both will use same internal API
- Contextual error management enhancements
- As internal APIs cannot be called from outside the library, last error management has been simplified and improved
- Enhancements on internal methods implementation:
- Since v3.0.0 (back in 2008), OCILIB methods implementations are standardized to follow the same single exit point pattern
- Standardized entry point checks and exit points are based on extentive macros usage
- But the control flow was handled by a status variable leading to continuous and nested checks
- With 4.7.0, no more "if (STATUS) {...}" in the code.
- Instead, in case of errors, code directly jumps to exit points that can have cleanup code sections.
- See it as try {...} finally{...}
- Thus, code is now very sequential, much easier to read, with no nested error management/branching.

- Public headers reorganization:
* Broke up ocilib.h content into multiple headers located in /include/ocilibc/
* Broke up C++ headers content into multiple headers located in /include/ocilibcpp/

- Enhanced Error handing:
* Updated OCI_Cleanup(): if there are any unfreed allocated bytes by the library itself (e.g. OCILIB user objects not freed)
- it raises an error of type OCI_ERR_UNFREED_BYTES (with the amount of bytes in the error message)
- it completes cleanup and returns FALSE
* Added method OCI_ErrorGetLocation() to return the method name where the exception occured
* Updated method OCI_ErrorGetString() to return a string using the following format "Error occured at {Location}: {Description}"

* Fixes (C API)

- Issue 239: Fetching nclobs as strings return value in hexa format truncated values when nsl_lang is UTF8
- Issue 238: Fetching clobs as strings return truncated values when nsl_lang is UTF8
- Issue 236: Memory issue with OCI_BAM_INTERNAL and OCI_CDT_NUMERIC
- Fixed OCI_EnqueuePut() and OCI_DequeueGet() in OCI_CHARSET_WIDE charset mode (added a workaround for a known oracle client UTF16 bug)
- Fixed a minor memory leak when using implicit resultsets

* Fixes (C++ API)

- Issue 230: Memory leaks while rebinding vectors

* Miscellaneous

- Extended C API Test suite that has now a much wider coverage

2020-04-18 Version 4.6.4 Vincent Rogier [email protected]

* Fixes (C API)
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
4.6.4
4.7.0
2 changes: 1 addition & 1 deletion configure
Original file line number Diff line number Diff line change
Expand Up @@ -592,7 +592,7 @@ PACKAGE_STRING='ocilib 4.2.0'
PACKAGE_BUGREPORT=''
PACKAGE_URL=''

ac_unique_file="src/library.c"
ac_unique_file="src/ocilib.c"
# Factoring default headers for most tests.
ac_includes_default="\
#include <stdio.h>
Expand Down
2 changes: 1 addition & 1 deletion configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ AC_INIT(ocilib, m4_esyscmd([tr -d '\n' < VERSION]))

m4_pattern_allow([LT_MAJOR])

AC_CONFIG_SRCDIR([src/library.c])
AC_CONFIG_SRCDIR([src/ocilib.c])
AC_CONFIG_AUX_DIR(config)
AM_CONFIG_HEADER(config.h)
AC_CONFIG_MACRO_DIR([m4])
Expand Down
31 changes: 18 additions & 13 deletions doxygen/Doxyfile.dox
Original file line number Diff line number Diff line change
Expand Up @@ -38,20 +38,20 @@ PROJECT_NAME = "OCILIB (C and C++ Driver for Oracle)"
# could be handy for archiving the generated documentation or if some version
# control system is used.

PROJECT_NUMBER = 4.6.4
PROJECT_NUMBER = 4.7.0

# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a
# quick idea about the purpose of the project. Keep the description short.

PROJECT_BRIEF =
PROJECT_BRIEF = "Open source and cross platform Oracle Driver delivering efficient access to Oracle databases."

# With the PROJECT_LOGO tag one can specify a logo or an icon that is included
# in the documentation. The maximum height of the logo should not exceed 55
# pixels and the maximum width should not exceed 200 pixels. Doxygen will copy
# the logo to the output directory.

PROJECT_LOGO =
PROJECT_LOGO = ../images/logo-160x120.png

# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path
# into which the generated documentation will be written. If a relative path is
Expand Down Expand Up @@ -313,7 +313,7 @@ OPTIMIZE_OUTPUT_SLICE = NO
# Note that for custom extensions you also need to set FILE_PATTERNS otherwise
# the files are not read by doxygen.

EXTENSION_MAPPING =
EXTENSION_MAPPING = hpp=C++

# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments
# according to the Markdown format, which allows for more readable
Expand Down Expand Up @@ -817,7 +817,12 @@ INPUT = Introduction.txt \
Installation.txt \
DataTypes.txt \
../ \
../include
../include \
../include/ocilibc \
../include/ocilibcpp \
../include/ocilibcpp/detail \
../include/ocilibcpp/detail/core \
../include/ocilibcpp/detail/support

# This tag can be used to specify the character encoding of the source files
# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
Expand Down Expand Up @@ -1158,7 +1163,7 @@ HTML_FILE_EXTENSION = .html
# of the possible markers and block names see the documentation.
# This tag requires that the tag GENERATE_HTML is set to YES.

HTML_HEADER =
HTML_HEADER = customheader.html

# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each
# generated HTML page. If the tag is left blank doxygen will generate a standard
Expand All @@ -1168,7 +1173,7 @@ HTML_HEADER =
# that doxygen normally uses.
# This tag requires that the tag GENERATE_HTML is set to YES.

HTML_FOOTER =
HTML_FOOTER = customfooter.html

# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style
# sheet that is used by each HTML page. It can be used to fine-tune the look of
Expand All @@ -1180,7 +1185,7 @@ HTML_FOOTER =
# obsolete.
# This tag requires that the tag GENERATE_HTML is set to YES.

HTML_STYLESHEET =
HTML_STYLESHEET = customdoxygen.css

# The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined
# cascading style sheets that are included after the standard style sheets
Expand Down Expand Up @@ -1214,15 +1219,15 @@ HTML_EXTRA_FILES =
# Minimum value: 0, maximum value: 359, default value: 220.
# This tag requires that the tag GENERATE_HTML is set to YES.

HTML_COLORSTYLE_HUE = 220
HTML_COLORSTYLE_HUE = 222

# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors
# in the HTML output. For a value of 0 the output will use grayscales only. A
# value of 255 will produce the most vivid colors.
# Minimum value: 0, maximum value: 255, default value: 100.
# This tag requires that the tag GENERATE_HTML is set to YES.

HTML_COLORSTYLE_SAT = 100
HTML_COLORSTYLE_SAT = 65

# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the
# luminance component of the colors in the HTML output. Values below 100
Expand All @@ -1233,7 +1238,7 @@ HTML_COLORSTYLE_SAT = 100
# Minimum value: 40, maximum value: 240, default value: 80.
# This tag requires that the tag GENERATE_HTML is set to YES.

HTML_COLORSTYLE_GAMMA = 80
HTML_COLORSTYLE_GAMMA = 56

# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
# page will contain the date and time when the page was generated. Setting this
Expand Down Expand Up @@ -1261,7 +1266,7 @@ HTML_DYNAMIC_MENUS = YES
# The default value is: NO.
# This tag requires that the tag GENERATE_HTML is set to YES.

HTML_DYNAMIC_SECTIONS = YES
HTML_DYNAMIC_SECTIONS = NO

# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries
# shown in the various tree structured indices initially; the user can expand
Expand Down Expand Up @@ -1604,7 +1609,7 @@ MATHJAX_CODEFILE =
# The default value is: YES.
# This tag requires that the tag GENERATE_HTML is set to YES.

SEARCHENGINE = NO
SEARCHENGINE = YES

# When the SERVER_BASED_SEARCH tag is enabled the search engine will be
# implemented using a web server instead of a web client using Javascript. There
Expand Down
4 changes: 1 addition & 3 deletions doxygen/Introduction.txt
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
/**
@mainpage Introduction

@image html logo-160x120.png

@section Intro Description

OCILIB is an open source and portable Oracle C and C++ Driver that delivers really fast
Expand All @@ -19,7 +17,7 @@

@section Version Version information

Current version : <b>4.6.4</b>
Current version : <b>4.7.0</b>

@section Features Main features

Expand Down
Loading

0 comments on commit 46ea653

Please sign in to comment.