Re: Why do I get table implementation instead of the table during compile time?

2019-09-12 Thread mratsim
You can't rely on what repr/$ prints at compile-time. Object variant used to 
display all the branches in the past as well.

seq at compile-time are the same as array. And enums/bool are the same as 
integers so when crossing some proc boundaries you get an unexpected type:

[https://github.com/nim-lang/Nim/issues/7375](https://github.com/nim-lang/Nim/issues/7375)


Re: Why do I get table implementation instead of the table during compile time?

2019-09-12 Thread moigagoo
It turns our other types are not passed as I expected too. SqlQuery is passed 
as string, which conforms to what @jlp765 said about reprs.


Re: Why do I get table implementation instead of the table during compile time?

2019-09-12 Thread moigagoo
> debugEcho is showing you the table repr

debugInfo shows different things when called in different places. When called 
at the end of the proc that returns the table, it prints the table properly. 
When called downstream on the called proc result, it prints the implementation 
details. So, even if it prints repr, because the reprs are different in two 
cases, that means that the things they represent are different.

> Write your own $ proc for type Table[string, SqlQuery] so that > >echo 
> tableSchemas2 > > gives you what you want.

My goal is not to print the table or get it in a prettified string form. I need 
to access the table's values by key and iterate over values. I can't do that 
because the "table" I'm getting is not a Table really.


Re: Why do I get table implementation instead of the table during compile time?

2019-09-12 Thread jlp765
`debugEcho` is showing you the table repr

Write your own `$` proc for type `Table[string, SqlQuery]` so that

`echo tableSchemas2`

gives you what you want.