Skip to content

kdb+ 2.5 Release Notes

This page details the latest features and improvements released to kdb+ 2.5.

2011.02.04

Fixes and improvements

  • potentially, in extremely obscure cases, a sym compare might have matched incorrectly. This affects finding unique rows

    in tables where at least one column is a sym.
  • 0!x was not decrementing ref count of x in the event of a type error

    e.g.0!()

2011.01.20

Fixes and improvements

  • calling code in dynamically loaded libraries on linux could crash randomly, since 2.6 2009.08.20

2010.07.23

  • hopen (or khp/khpu from c) could fail if 0 was the socket descriptor allocated.

  • processing incoming aync msgs whilst awaiting a sync response was causing .z.w/.z.u to lose context

    e.g. (hopen`::5000)"(neg .z.w)\"(neg .z.w)`\""; .z.u

2010.06.28

Fixes and improvements

  • allow deeper nesting of (), limit was 15, now it is 100. e.g. value raze 100#'"()"

2010.06.20

Fixes and improvements

  • enum compare was erroneously matching null, e.g. u:enlist`x;select from([]b:`s#`u$``x) where b in `x

2010.06.17

Fixes and improvements

  • appending a different nested type to a nested type was crashing; now it throws 'type

    e.g. .[`:test/;();,;([]a:(1 2;3 4))];.[`:test/;();,;([]a:(`a`b;`c`d))];get`:test/

2010.05.21

Fixes and improvements

  • artificial memory limit (via command line -w) could have been exceeded under some circumstances

2010.05.12

Fixes and improvements

  • min on a sorted list was not ignoring nulls, e.g. min asc 0n 1

2010.02.26

New

  • command line option -o n (and \o n) - n now represents minutes if abs[o]>23. It continues to represent hours if abs[o]<24.

    This is to accomodate timezone offsets that are partial hours (e.g. NSI,BSE in India)

2009.12.22

Fixes and improvements

  • enumerating nulls was crashing, e.g. e:`a`b;`e$`;`e$``

2009.12.02

  • amended README entry for 2009.07.21

2009.09.18

  • amended README entry for 2009.05.29

2009.09.09

Fixes and improvements

  • exec from ([a:1 2]b:3 4) was returning an unshowable structure

  • print wsfull to stderr, even when stderr redirected

2009.08.26

Fixes and improvements

  • was crashing on a:(`int$())!();a[`q]:0 same problem as t:([a:0 1;b:0 1]c:0 1);@[t;`a;`s#]

  • q.k - improved performance of .Q.en

2009.07.27

Fixes and improvements

  • deltas 30 32 39h was returning 0N 2 7 instead of 30 2 7

  • in multithreaded mode allow updates to globals via .z.ts (linux,solaris only, windows later)

  • ("SS";enlist csv)0:`:file crashed if file ended on a page boundary

  • block bad cast t:([a:()] b:());`t$([] a:20 30)

  • extend scalar t:([]a:enlist 1);t[`b]:1

2009.07.21

Fixes and improvements

  • rework of .z.t to be consistent with "t"$.z.z, without losing higher resolutions of .z.z

  • also `datetime casting behavior changed from round to truncate (for > millisecond precision)

  • reactivated zeroing of dictionaries, e.g.

    ((enlist {})!enlist (enlist {})!enlist (enlist {})!enlist 1000)[`;`;`]
  • hclose -1 caused crash

2009.07.15

Fixes and improvements

  • w64 only

  • allocs greater than 2GB were causing kdb+ to lock up

2009.07.06

Fixes and improvements

  • w64 only

  • was crashing on asc 9#.5 50000

2009.06.29

Fixes and improvements

  • loading a file containing a symbol vector only with an attribute, where the file had been appended to, resulted in a partial load of the data ingoring the appended data.

  • e.g. `:sym set `u#0#`;.Q.en[`:.;([]a:`a`b)];(`:.)`sym

  • additionally, loading of this type of file could have dropped the attribute under some boundary cases.

2009.06.23

Fixes and improvements

  • hsym of char vector longer than 256 chars was crashing, e.g. hsym `$263?" "

  • .z.t is now consistent with "t"$.z.z (previously `time$ rounded and .z.T truncated)

  • nonnest fset will now delete extant f#

  • (0Nd;0 1) in t was crashing when t had a foriegn key

2009.05.29

Fixes and improvements

  • append to keyed table where key was char vectors. t:([k1:("aa";"bb");k2:("cc";"dd")]v:1 2);t,:("xx";"yy";3)

  • block serialization of locked (hidden) functions (i.e. functions generated from .q_ scripts)

2009.04.24

Fixes and improvements

  • multithreaded input (kdb+ started on a negative port number) was not releasing memory on query completion

2009.04.15

Fixes and improvements

  • ((`a`b!(1 2)),(enlist `c)!enlist 3.0) _ `c / was not collapsing back to int vector for value

2009.03.27

Fixes and improvements

  • allow spaces in username/password

  • allow select from partitionedTable where boolean,...

  • retain attributes for lj

  • handles 1 2 sublist () correctly

New

  • \w 0 - show number of internalized symbols and their memory usage

2009.03.09

Fixes and improvements

  • q.k only, q binaries same as 2009.03.01 - rollback of "allow select x:count i by x:time mod 60 from trade where date=.." from 2009.02.19

2009.03.01

Fixes and improvements

  • checks if w is still valid (for .z.a .z.u)

  • reports errors to remote when using negative port

  • allow thread delete from local e.g. q)h"{:delete from ([]date:enlist 2009.01.23)}[]"

  • div revert to 2.4 floor(x/y) e.g. q)1000.0 div 0.0000001

2009.02.19

Fixes and improvements

  • catch setting of negative port from q prompt when running with -s n

  • allow select x:count i by x:time mod 60 from trade where date=..

2009.02.13

Fixes and improvements

  • t[;`b`c] was giving erroneous results

2009.02.12

Fixes and improvements

  • solaris/sparc only - seg fault on exit when running with -ve port

  • \l asdf revert to 2.4 system behavior (allow \n's), i.e. rollback of FIX 2009.01.11 - when a comment had a leading space after a context switch the context name mistakenly included a newline.

  • report error for: select .. by table from table

  • multithread function parse was sometimes setting context incorrectly

2009.02.05

Fixes and improvements

  • race condition causing crash in slave mode (-s n)

  • resolving globals in select in a lambda, crept in 2009.02.02

2009.02.02

Fixes and improvements

  • refine symbol search in parse tree, e.g. allows select size where price>avg price by sym from trade where ...

2009.02.01

Fixes and improvements

  • allow a non par.txt \l after a par.txt

  • allow keyedtable upsert table-with-columns-out-of-order

2009.01.27

Fixes and improvements

  • was crashing on \l - showed up during checkpointing

  • bus error on growing arrays under linux, since 2009.01.21

2009.01.21

New

  • f peach dict

  • redo lj with .Q.fl, e.g. ([]a:2 3;b:3 4)lj([a:2 3]b:4 0N)

  • allow table[;`noncol]

  • remove madvise sequential

2009.01.11

New

  • allow \abvf in multithreaded mode

  • PLAY license set to expire .z.k+90 days

Fixes and improvements

  • 'glim check on deserializing

  • when a comment had a leading space after a context switch the context name mistakenly included a newline.

  • variable scope for global=column - yy:`c;select from ([]xx:`a`b) where yy=xx

2008.12.31

New

  • .z.W - shows dictionary of ipc handles versus bytes waiting in output queue

Fixes and improvements

  • 0n div 1 and 0.5 xbar 0n - was reporting non null value

2008.12.17

Fixes and improvements

  • reinstate 3rd value in \w as address limit on new objects

  • reinstate `u#() and `s#()

  • propagate linux errno through close(). e.g. hopen`:foo:1234

  • KDB+2.5 PRODUCTION RELEASE 2008.12.15

New

  • l64/l32 use mremap to realloc for inserts (faster by 20%)

  • Unused memory(for objects>1MB) is now immediately returned to the OS.

  • \_ f.q makes a runtime script f.q_

  • .z.q test for quietmode/noconsole. (i.e. >q .. -q)

  • abnormal exit code available with -q command line option (e.g. missing startup script)

NUC (Not Upwardly Compatible)

Not backward compatible. Changes existing behavior.

  • -s commandlineonly (\s n didn't work with multithread hdb)