It is now possible to define your own functions for use in SQL queries and data manipulation statements. User-defined functions are written as Java methods, which are then declared using the CREATE FUNCTION statement:
CREATE FUNCTION season FROM METHOD myapp.calendar.DateToSeason;
The web-based VoltDB Management Center has a new tab, Analysis, that lets you analyze the performance of a running database. The Analysis tab takes a snapshot of run-time database performance and provides several views of how the stored procedures are performing, including average execution time, frequency, and the total impact (that is, frequency times execution time). By clicking on a specific stored procedure, you can see further details on each statement within the procedure.
All changes to the database schema and/or the configuration are now recorded in the log file. The log records the time of the change, as well as the username and IP address of the person who changed it.
VoltDB has a number of utilities for loading data from external sources — CSV files, JDBC databases, and Kafka streams — as well as a generic bulk loader API for creating your own loading utility. Previously, if the loaders lost contact with all of the servers in the VoltDB cluster, the loading process would stop. Now, the utilities will wait, periodically retrying the connection, until the VoltDB cluster becomes accessible again.
This new behavior makes the loaders more resilient to failure, both of the external source and the VoltDB database. However, if you wish to revert to the previous behavior, you can add the –stopondisconnect argument when starting the csvloader, jdbcloader, or kafkaloader utility.
The sqlcmd utility lets you continue SQL statements across multiple lines and the statement is not processed until you enter the closing semi-colon and press return. However, previously there was no indication that the utility was still waiting for more of the statement. Now the utility indents the command line prompt to show when it is still waiting for more input. For example:
1> SELECT o.order_id, o.item, c.customer_id
2> FROM orders as o,customers as c
3> WHERE c.customer_id = o.customer_id
4> AND o.ship_date > NOW();
For a full list of v7.6 features and fixes, visit our Release Notes. If you have questions or feedback, drop our Customer Success Manager Ben Ballard a note at firstname.lastname@example.org. Downloa