Skip to content

16.6.10 Version and Compatibility

This page covers Machbase 8.7.0 backward compatibility, upgrade considerations, and supported operating systems/platforms.

8.7.0 Backward Compatibility

Client Driver Compatibility

Server Version8.5 Client Driver8.7.0 Client Driver
8.7.0 serverLimited compatibilityFull compatibility
8.5 serverFull compatibilityBackward compatible
  • With an 8.5 client driver, some new features of an 8.7.0 server may be unavailable.

  • Older server or driver combinations may return legacy or indeterminate nullable metadata. Applications that depend on this metadata must upgrade both the server and SDK to 8.7.0.

  • SQL using all CAST target types and length/precision options requires an 8.7.0 server. Conversion of an entire numeric ARRAY to another type with the same cardinality through CAST(array_expression AS TYPE[N]) is also available from this version. In Cluster Edition, all nodes must run the same version with CAST and ARRAY support. For syntax and conversion rules, see the CAST Function.

  • 8.7.0 servers support CREATE INDEX IF NOT EXISTS. If the same index name already exists for the same database and owner, it succeeds while retaining the existing definition. Verify actual index mappings after repeated deployments. Older servers do not support this syntax. For details, see INDEX Syntax.

  • 8.7.0 Standard Edition servers support positional and named bind parameters for NAME and BASETIME predicate values in TAG data UPDATE. Older servers may reject the same prepared UPDATE with ERR-02190. For predicate forms and SDK APIs, see TAG Data UPDATE Bind Parameters.

  • BASE DISTANCE TAG statistics views on 8.7.0 servers expose axis columns with *_DISTANCE names and their original DOUBLE, LONG, or ULONG types. Legacy *_TIME names are not provided as aliases. Existing tables also use the new schema after a server restart. The BASE TIME TAG *_TIME DATETIME schema is unchanged. Update application SQL and result mappings using the conversion table in Per-tag Statistics Views.

  • In 8.7.0 Standard Edition, SELECT/JOIN plan improvements may change table scan order and unordered result order compared with older versions. Use ORDER BY when order matters. After upgrading, verify both results and execution plans using the procedure in SELECT/JOIN Optimizer.

  • With multi-host URLs, the 8.7.0 JDBC driver tries the next host after a connection-stage I/O error. If an older driver terminates on certain socket errors at the first host, replace it with the 8.7.0 JDBC driver and check the URL and timeout settings in Multi-host Connections.

  • Machbase DBMS 8.7.0 supports fixed-length numeric ARRAYs and selected-column Append. Applications using ARRAYs must pair a DBMS 8.7.0 server with an SDK build containing the feature. Upgrade all Cluster Edition nodes together. For SQL and API details, see Numeric ARRAY Types and Sparse ARRAY and Selected-column Append APIs.

  • ARRAY columns support ADD COLUMN and DROP COLUMN in Standard Edition LOG, VOLATILE, LOOKUP, TRANSACTION, and TAG METADATA, and in Cluster Edition LOG tables. For differences in DEFAULT application to existing rows by table type, see DDL Syntax.

  • Public ARRAY positions are 0-based. Code using the initial 1-based ARRAY SQL, sparse objects, or indexed Append targets must decrement each position by one. Stored ARRAY data and dense element order are unchanged, so data migration is unnecessary.

  • For feature differences by server/SDK combination, see Server and SDK Compatibility.

Features Removed in 8.7.0

Machbase 8.7.0 does not provide the following features or interfaces. There is no compatibility layer for removed settings, SQL, or C APIs. Update configuration files, operational SQL, and applications before upgrading.

8.5 Feature or Interface8.7.0 StatusUser ImpactMigration
DB HTTP/REST (/machbase, /machiot, port 5657)RemovedExisting HTTP query and Append requests are unavailableUse SQLCLI, ODBC, JDBC, Python, Go, Node.js, or .NET SDKs
WebAdmin/MWA, static ClusterAdmin UIRemovedWeb UIs and associated startup scripts are unavailableUse server and cluster command-line tools
STREAM SQL and catalogsRemovedRegistered STREAMs cannot run or expose statusUse Fluentd or application jobs
Result CacheRemovedResult cache settings, status queries, and flush commands are unavailableUse indexes, ROLLUP, query optimization, or application caches
machcli.h and MachCLI*()RemovedExisting C/C++ source and binaries cannot be used unchangedMigrate to Machbase SQLCLI or ODBC

The following similarly named features remain supported.

Retained FeatureDescription
Machbase SQLCLISQL* APIs in <machbase_sqlcli.h>. This API set is separate from ODBC.
ODBC, JDBC, and language SDKsSupported drivers, including Python, Go, Node.js, and .NET, remain available.
MachEngine APIExisting Mach* APIs remain available.
PVO CacheReuses execution plan objects; it is distinct from the removed Result Cache.
Coordinator administration RESTAdministration API, separate from data SQL REST. The Coordinator /admin/ path remains available.

Clean Up Configuration Before Upgrading

If the following properties remain in the 8.7.0 machbase.conf, they are treated as unknown properties and prevent server startup. Remove them all before replacing the binaries.

HTTP_AUTH
HTTP_ENABLE
HTTP_MAX_MEM
HTTP_PORT_NO
RS_CACHE_APPROXIMATE_RESULT_ENABLE
RS_CACHE_ENABLE
RS_CACHE_MAX_MEMORY_PER_QUERY
RS_CACHE_MAX_MEMORY_SIZE
RS_CACHE_MAX_RECORD_PER_QUERY
RS_CACHE_TIME_BOUND_MSEC
STREAM_THREAD_COUNT
STREAM_WAIT_MS

If existing STREAM definitions are needed, record V$STREAMS and the associated SQL before stopping the 8.5 server. In 8.7.0, SYS_STREAM_STMTS, V$STREAMS, V$HTTP_STATUS, V$RS_CACHE_LIST, and V$RS_CACHE_STAT are not registered.

After upgrading, verify that each query below returns 0.

SELECT COUNT(*) AS removed_property_count
FROM V$PROPERTY
WHERE NAME IN (
    'HTTP_AUTH', 'HTTP_ENABLE', 'HTTP_MAX_MEM', 'HTTP_PORT_NO',
    'RS_CACHE_APPROXIMATE_RESULT_ENABLE', 'RS_CACHE_ENABLE',
    'RS_CACHE_MAX_MEMORY_PER_QUERY', 'RS_CACHE_MAX_MEMORY_SIZE',
    'RS_CACHE_MAX_RECORD_PER_QUERY', 'RS_CACHE_TIME_BOUND_MSEC',
    'STREAM_THREAD_COUNT', 'STREAM_WAIT_MS'
);

SELECT COUNT(*) AS removed_table_count
FROM V$TABLES
WHERE NAME IN (
    'SYS_STREAM_STMTS', 'V$HTTP_STATUS', 'V$RS_CACHE_LIST',
    'V$RS_CACHE_STAT', 'V$STREAMS'
);

DDL Concurrency Compatibility

Machbase 8.7.0 uses different DDL concurrency policies by edition.

Edition8.7.0 BehaviorDDL_LOCK_TIMEOUT
StandardDDL on independent objects can run concurrentlyAvailable. Default: 0 (NOWAIT)
ClusterRetains the existing catalog-wide DDL policyNot available

In Standard Edition, conflicting DDL on the same or directly related objects returns ERR-02031: Resource busy (<object>) immediately by default. Deployment scripts that assume older waiting behavior must explicitly adopt an appropriate approach after upgrading.

  • Set a bounded wait in the deployment session with ALTER SESSION SET DDL_LOCK_TIMEOUT = seconds.
  • Apply bounded retries and wait intervals only to ERR-02031.
  • Recheck object state before retrying. Do not retry already exists, privilege, or syntax errors.

For conflict relationships and configuration, see DDL Concurrency and Locks.

Backup File Compatibility

Backup VersionRestore in 8.7.0Notes
8.5 backupOUse MOUNT or machadmin -r
8.7.0 backupO
8.4 or earlier backupVersion-dependent; testing required

Canonical Upgrade Reference

For execution order, supported platforms, and prechecks, see Upgrade. This page maintains SQL, server, and client compatibility facts only.

Last updated on