Got an error that I could find for a while. It was when parsing a lot of
files.
Turn out it was the Thread Pool or something because if I run on 1 core,
it's ok.
Different thing in this commit, I just want to freeze a state that
benchmark work.
Now SchemaEngine have an arena at the root of the file. So UUIDFileIndex
can be as big as we want. The idea is nice, maybe I will use it for the
FileEngine too.
Started to use fixed buffer at the root of each file. I like that
because that mean I can estimate the amount of memory that the app use.
The only thing that still use an non fixed allocator is the
UUIDFileIndex, but I dont like it. I think it should also use a fixed
lenght buffer. But then how can I be sure it is enough ? :/
I mean I get it, I need an allocator here. But if this is the only place
I use one, this a shame
Now the DBEngine have a ThreadEngine that have a pool. Like that it is
always the same pool and I dont create one everytime I run a parseing
methods of the FileEngine
Now log are managed by the std log, did a custom log to print either
into a file or into the default io strout.
The plan is to create a scope in each file and log depending of stuff,
can also use it in library I think, if should still base by the custom
function.
Next step is logging a lot of stuff a bit everywhere.
Added the datatype date, time and datetime
Moved all custom erros to a single file
Cleaned code to be more readable and created some small utils
Other stuffs that I dont recall. Basically preparing for the
relationship implementation
Removed the loop for the CLI, now just take some argument using the
binary. May come back to while loop if I need to keep like the file
engine between session. To run query in parallel.
Moved printError and send to utils and removed duplicate of them.
Organized FileEngine better.
Put the function that convert string to value in a seperate file.
Fix some synthax and make it smaller. Removed unused functions too