Author: InMemory.Net

Speeding up Query Compilation with Roslyn

We use Roslyn to help speed up our query compilation process. However because Roslyn requires dot net 4.5 or higher, and our technology currently supports Dot Net 4.0, we have put the Roslyn Compiler interface into a separate DLL ( RosCompiler.dll ) If you are integrating IRDB.DLL into your own solution, and want to be able to use the Roslyn…

Improved Clustered Indexes

Clustered indexes are a feature of InMemory, that help you speed up certain queries, when you filter by a common dimension. Suppose you have a main fact table called SalesTable, and a date dimension called InvoiceDate, you could create a clustered index, by running the following statement in IRDBImport or IRDB-SQL CREATE CLUSTERED INDEX ON SalesTable(InvoiceDate) In our earlier builds,…

Database Timings

We have three ways to see execution related timings 1. IRDB.LOG irdb.log file in the main IRDB directory gives a record of the queries that are executed, and a breakdown of the major times of execution that went into the query. If you stop the service net stop “irdb server”  , you should then be able to launch irdbServer.exe in…

Added CSV Support

In our latest build, we have added beta support for importing csv delimited files. You can declare a CSV datasource by using the CSV Keyword in the DATASOURCE command in irdbImport. The following is an example CSV DATASOURCE command. DATASOURCE a1=CSV ‘Data Source=C:\irdb\data\csvtest;Delimiter=,;Has Quotes=True;Skip Rows=0;Has Header=True;Comment Prefix=#;Trim Spaces=False;Ignore Empty Lines=True;encoding=default’ By default the encoding is the system default text encoding. Other supported options…

Intersect / Except Set Operations

Today we’ve added a new build that adds support for INTERSECT and EXCEPT set operations. These take two SELECT statements before and after. The INTERSECT set operation will return the common rows between the two tables, and EXCEPT , will remove any rows contained in Query2  from query1. An example query using INTERSECT would like: SELECT * FROM table1 INTERSECT…

Parameterizing Imports

Our command line import tool, irdbImports, provides a variety of methods for parameterizing your imports. Command Line Parameters First of all the command line parameters are available within the script as special variables, @param1, @param2, @param3 and so on, for each parameter. @param1 will generally be the name of the import script. A script called param.imp with the following contents.…

New Uncolumnized Import Mode

Before in IRDBImport, when you imported data, it would take whatever data was imported, and once the import statement was finished, it would columnize the result. If you imported a second or more tables with the same name, it would then uncolumnize the previous result, and append the new data. This is fine for a few tables, but if you are…

Improved Null Support

We recently overhauled InMemory.Net to add improved support for NULL operations. In general now we have added null support for most expressions. All functions should also accept null parameters, and return null if their parameters are null. You can also use cast with null, e.g. cast ( null as bigint ) to force a null of a specific type. MIN…

For those it may concern: the InMemory.net Feature list.

InMemory.Net Feature List Pure Dot Net In Memory Database Runs on Windows, Mac, Linux Easily Import data through ODBC/OLE DB/ Dot Net Data Drivers, through simple text scripts or via a Dot Net API. E.g. DATASOURCE a1=ODBC ‘dsn=your_DSN’ IMPORT sales=a1.sales SAVE 32 Bit / 64 Bit Odbc Drivers DISTINCT/MIN/MAX/SUM/AVG/COUNT/COUNT DISTINCT Support INNER / LEFT Join Support on multiple fields UNION…

New SQL Functions

We’ve added the following new SQL Function to the InMemory.Net database. Wanted to thank Jônatas Hudler for the suggestion. Substring(someString, startPos) Ascii(someChar) – Returns the ASCII code for a given char – or the first char, in case of a char array (string) Char(number) – Returns a char from an ASCII code Reverse(someString) – Reverse character positions of the given…