Thread overview
sqlite-statement CTFE Generation (UniformAccess) / Benchmark
Apr 15, 2014
Robert Schadek
Apr 15, 2014
Dicebot
Apr 15, 2014
Robert Schadek
Apr 15, 2014
Ali Çehreli
April 15, 2014
Lately I had to write some sqlite3 code in D. And I really hated writing it. So I wrote me some CTFE generator for it. It uses all the fun UDA, CTFE string mixin template magic, we all love. The generated code is as fast as the hand written one. I wrote some of it down. http://rburners.tumblr.com/ The article also holds a link to the source/benchmark. Maybe this is to some interest to other people as well.

Best Regards
Robert

p.s. PRs and corrections welcome
April 15, 2014
On Tuesday, 15 April 2014 at 15:57:13 UTC, Robert Schadek wrote:
> Lately I had to write some sqlite3 code in D. And I really hated writing
> it. So I wrote me some CTFE generator for it. It uses all the fun UDA,
> CTFE string mixin template magic, we all love. The generated code is as
> fast as the hand written one. I wrote some of it down.
> http://rburners.tumblr.com/ The article also holds a link to the
> source/benchmark. Maybe this is to some interest to other people as well.
>
> Best Regards
> Robert
>
> p.s. PRs and corrections welcome

Some quick observations:

1) toStringz(insertStmt) -> as inserStmt is actually a string literal, no need to use toStringz, literals are alway null-terminated.

2) in block immediately after `throw` has extra level of indentation

3) excessive sqlite3_finalize(stmt), one from first scope(exit) should have been enough

Will read actual article a bit later :P
April 15, 2014
On 04/15/2014 07:05 PM, Dicebot wrote:
> Some quick observations:
>
> 1) toStringz(insertStmt) -> as inserStmt is actually a string literal,
> no need to use toStringz, literals are alway null-terminated.
did not know that. Thanks
>
> 2) in block immediately after `throw` has extra level of indentation
will check
>
> 3) excessive sqlite3_finalize(stmt), one from first scope(exit) should
> have been enough
will check
>
> Will read actual article a bit later :P

April 15, 2014
On 04/15/2014 08:51 AM, Robert Schadek wrote:
> Lately I had to write some sqlite3 code in D. And I really hated writing
> it. So I wrote me some CTFE generator for it. It uses all the fun UDA,
> CTFE string mixin template magic, we all love. The generated code is as
> fast as the hand written one. I wrote some of it down.
> http://rburners.tumblr.com/ The article also holds a link to the
> source/benchmark. Maybe this is to some interest to other people as well.
>
> Best Regards
> Robert
>
> p.s. PRs and corrections welcome
>

Here is my non-technical input. :) Typos:

snipped -> snippet (Also, there shouldn't be any comma in that sentence.)

simular -> similar

Than it -> Then it

by a @ -> by an @ (not sure about that one)

an decleration -> a declaration

associcated -> associate

all it UDAs -> all its UDAs

table creating -> table create

iteratable -> iterable

not to difficult as well -> not too difficult either

I wound ->  I won't

C++ Version -> C++ version

I test dmd -> I tested dmd

datebase -> database

feel to create -> feel free to create

request to for -> request for

it seams, that most time -> it seems that most of the time

spend -> spent

ldc, because -> ldc because

joins seam -> joins seem

Become SQL -> Make SQL

Ali

April 15, 2014
> Here is my non-technical input. :) Typos:
>
> snipped -> snippet (Also, there shouldn't be any comma in that sentence.)
>
> simular -> similar
>
> Than it -> Then it
>
> by a @ -> by an @ (not sure about that one)
>
> an decleration -> a declaration
>
> associcated -> associate
>
> all it UDAs -> all its UDAs
>
> table creating -> table create
>
> iteratable -> iterable
>
> not to difficult as well -> not too difficult either
>
> I wound ->  I won't
>
> C++ Version -> C++ version
>
> I test dmd -> I tested dmd
>
> datebase -> database
>
> feel to create -> feel free to create
>
> request to for -> request for
>
> it seams, that most time -> it seems that most of the time
>
> spend -> spent
>
> ldc, because -> ldc because
>
> joins seam -> joins seem
>
> Become SQL -> Make SQL
>
> Ali
>
thank you