►
From YouTube: RustLang Meetup Malaysia - March 2021
Description
Ivan Tham talked about diesel and experience with it with some examples of how the strongly type ORM looks like. On some additional time, he talked about a side project using rust to do parsing with nom and using inline_python to run some pandas code directly.
A
B
Today
we
will
have
ivan
presenting
on
diesel.
So
without
further
ado,
let's
start
the
presentation.
So
if
you
are
by
the
way,
if
you
are
interested
in
the
meetup,
you
can
go
to
you,
can
you
can
come
join
our
call
on
google
meet
the
this?
Is
the
meet
google
me
code,
nz
e
and
rje
dvd
without
further
ado
evan?
Are
you
ready.
A
A
Okay:
okay,
since
last
time
we
have
our
last
meet
up.
During
last
january,
we
have
1.40
plus,
and
now
we
have
1.49
release.
So
it's
like
a
year
more
than
a
year
already.
We
have
quite
a
lot
we
have
like.
We
have
a
lot
of
improvement
in
a
const
area
like
there's
a
cons,
function
and
stuff,
a
lot
of
them.
A
A
Okay
and
and
then
today,
I'll
talk
about
diesel
learn
about
diesel.
Is
that
last
time,
when
I
was
working
right,
I
was
when
I
was
working.
I
was
reading
doing
like
goa
m,
which
is
a
gold
length
library
for
om.
I
was
working
in
this.
I
noticed
that
there's
a
lot
of
food
guns
where
you
can
easily
fall
into
so
russ
have
russet
a
library
called
diesel
which
is
popular.
It's
an
om,
although
some
someone
doesn't
doesn't
call
it
om
right.
A
We
can
consider
it
itself,
it
markets
itself
as
an
om
and
query
builder
yeah,
but
the
something
someone
might
argue
that
it's
more
it's
a
more
more
towards
queer
builder.
They
could
consider
it
so
I
tried
golem
such
that
it
has
issues
with
joints
and
if
you
do
something
out
of
normal
because
it
uses
a
lot
of
reflection,
magic
and
it
uses
a
lot
of
reflection
magic
for
gram,
so
it
have
a
lot
of
sometimes
in
some
parts
it
doesn't
work,
even
though
it
compiles,
but
design
is
different.
A
Lisa
is
a
type
safe,
extensible,
om
and
today
I'll
share
my
experience
on
using
diesel
and
how?
How
much
typesafe
is
that?
So
we
first
when
we
come
into
diesel
right,
we
need
to
know
that
it
is
not
you,
you
can't,
you
can't
think
of
it
as
the
other
om
that
you
might
have
seen,
because
later
I'll
explain
that
so
reset
is
fast.
It's
built
for
performance,
okay,
before
performance
as
in
they
have
a
benchmark
as
because
there
is
a
alternative
to
diesel,
includes
sql.
A
In
in
rust
as
well,
so
this
one
is,
this
is
type
safe.
So
that's
why
they
can
say
preventing
runtime
errors,
but
it's
type
safe
to
a
certain
level.
So
I
have
experienced
some
food
guns
in
for
it
such
that
it
doesn't
have
like
in
some
parts,
very
specific
parts,
and
it
gets
runtime
error
instead
of
compile
time
error.
A
But
there's
like
some
limitation
in
perhaps
some
limitation
in
the
type
type
system
such
that
it
didn't
implement
those
parts
it
can
be
done,
but
it
wasn't
there
because
it's
something
new
for
that
part,
so
they
haven't
fully
explored
that
yet
so
sqr
x
is
an
alternative
to
diesel,
whereas
sql
x
takes
a
takes
a
different
approach
where
you
write
pure
sql
and
then
the
sql
and
then
the
sql
will
be
checked
during
compile
time
when
you
compile
the
sql,
when
you
compile
the
stuff
with
sql
x
right,
you
can
use
their
macro
called
query
and
they
also
have
a
function,
but
you
can
use
the
macro
and
the
macro
will
connect
to
the
database,
and
then
you
check
whether
that
query
is
correct
or
not.
A
A
A
So
when,
when
you
get
started,
you
look,
we
will
see
some
examples
here.
A
This
is
like
roughly
what
diesel
looks
like,
so
these
are
the
generator
code
and,
and
then
they
they
won't
have
a
relationship,
and
these
are
like
roughly
how
diesel
looks
like
and
they
also
users
derive
to
derive
like
the
stuff
to
be
queried
and
for
inserting
data.
Usually
they
have
in
this
right.
They
have
a
pattern
where
you,
you
create
a
struct
for
like
different
items
that
you
are
doing,
for
example,
because
usually
you
see
people
like
if
you
have
a
struct
for
user
people,
have
a
strap
for
a
new
user
user.
A
Is
for
creating
user
is
for
creating
a
new
listing
users
where
the
users
have
id,
and
if
you
notice
the,
if
you
use
user
right,
it
will
be
draft
queryable
and
then,
if
you
use
like
a
new
user,
it
will
be
derived
in
suitable.
The
difference
is
that
new
user
usually
don't
include
the
id.
You
only
include
what
you
want
to
insert
and
other
values
being
like
auto
generated
or
default
values.
A
A
Like
some
issues
like
let's
say
it
doesn't
do
like
default
values
or
special
case
in
some
stuff.
So
all
the
fields
have
to
be
there
and
must
be
used
and
later
I'll
talk
about
this.
How
they
work?
It's,
not
you,
don't
you
don't
think
of
them
as
models,
you
think
of
them
as
like
queries
to
be
called
stuff
to
be
correct,
because
it
it
doesn't
work
like
a
model
in
other
languages.
A
B
B
B
B
B
B
B
A
B
No,
oh,
can
you
generally
start
the
the
top,
because
youtube
was
having
problem
refreshing,
the
the
slides.
A
B
A
B
B
A
A
A
A
Sqlx
have
bought
async
support,
diesel
doesn't
have,
and
I
can
explain
a
reason
next
time,
and
so
it
supports
sqlx
supports
like
a
few
more
a
few
more
drivers
other
than
no.
These
are
only
support,
postgres,
mysql
and
sqlite,
but
sqlx
support
a
few
more
drivers,
some
more
srx
support
like
the
pura
drywall.
A
Yet
no
one
wants
to
do
that,
but
the
reason
the
reason
why
diesel
didn't
support
the
purest
driver
is
that,
because
the
poorest
drivers,
for
like
the
bicycle
cannot
be
compared
to
the
c
driver,
is
that
a
lot
slower
compared
to
the
c
binding?
So
this
is
to
use
the
c
by
index
the
original
c
bindings
and
why?
Why
do
we
want
to
use
these
like
one
of
the
things,
because
it's
type
save
it
prevent
runtime
error?
A
This
is
safe
to
us
for
a
certain
level
where,
like
sometimes
new
features,
are
faced
certain
scenario
where
there
is
error
on
runtime
instead
of
compile
time,
but
most
of
the
stuff
is
like
when
usually
when
it
comes,
it
will
work
in
diesel,
but
sometimes
the
compiler
compile
error,
for
this
is
quite
hard
to
understand
because,
like
because
diesel
uses
a
lot
of
different
type
type
magic,
you
can
call
it
so
and
then
it's
also
a
bit
of
a
performance.
A
It's
quite
fast
and
of
course
I
think
raw
sql
should
be
faster,
but
diesel
it
should
is
quite
fast
and
productive.
I
don't
know
how.
How
good
is
that?
So
they
still
have
like
a
built-in
dsl,
where
you
can
have
multiple
dsl,
where
you
can
use
the
domain
specified
language
to
do.
The
querying
you
can
see
like
these
are
all
like
piezo
code
and
it
will
generate
the
it's
like
a
builder
or
sort,
but
it's
the
corresponding
types
of
rust.
B
A
It
says,
like
you,
can
do
something
like
this
and
then
it
will
do
like
this,
so
these
are
generated
by
diesel.
You
don't.
This
is
like
diesel
schema
it's
generated
and
they
generate
dsl
for
you
and
then
well
it
does
it
generates
this.
So
these
are
diesel
code.
It's
a
more
complex
one,
of
course,
later
I'll
show
even
more
complex,
even
more
complex
one
which
doesn't
even
work.
A
I
mean
I'm
stuck,
so
I
need
to
do
raw
sql
for
that,
but
this
already
supports
quite
a
lot
of
different
stuff.
Like
this
utilizes
the
derive
for
code
gen,
there's
a
queryable,
the
ef
variable
is
to
query
you'll
notice
that
there's
a
there's
a
queryable
and
there's
an
insertable
in
these.
So
these
are
different.
You
can't
think
of
them
as
models.
A
It
doesn't
work
the
way
similar
to
other
database
where
we
have
something
called
model
digital.
These
are,
you
can
think
of
it
as
what
is
being
correct
in
the
sql.
So
this
side,
the
select
id
version
id
downloads
counter
that
actually
is
not
by
name
it's
a
this
one.
You
can't
think
of
it
at
this
because
this
one
works
using
the
order.
A
So
it's
a
it's
a
bit
different,
such
that
the
queryable.
It
looks
at
the
id
the
i32
i32
this,
but
it
doesn't
look
like
this.
Why?
Because
what
if
you
want
to
use
like
sql
like
aggregation
like
count
or
you
want
to
do
something
like
average?
A
A
Okay,
we
don't
we
don't
use
the
same
struct
as
I
wouldn't
say:
let's
boil
plate,
because
it's
quite
it's
quite
still,
some
by
the
way,
because
for
different
queries,
you
need
to
do
different
struct
and
this
one.
This
time
you
have
to
like
you'll,
see
that
if
you
have
user
struct,
usually
you
have
you
also
have
a
new
user
strap
new
user
struct?
Usually
you
will
have
like
derived
insertable
and
user
derived
queryable,
because
why?
A
A
So
that's
why
this
also,
although
it's
a
bit
more
boilerplate,
but
you
you
can
make
sure
things
don't
go
wrong
like
you,
don't
insert
id
right!
So
that's
why
id
is
not
there
when
it's
inserting
and
when
querying
id.
Is
there
because
you
want
to
get
the
id.
A
So
that's
why
you
can
think
of
it
as
like
like
this,
so
you
can
think
of,
like
name
as
the
first
one
and
the
hair
color
as
the
second
one,
except
this
I
I
think
insertable
also
is
ordered
by
order
by
the
type
and
there's
also
queryable
by
name
derive.
If
you
want
to
look
into
the
if
you
want
to
use
raw
sql,
and
these
are
like
batches
and-
and
this
is
quite
economic
in
some
cases
because
it
it
can
like
you-
can
use
different
types.
A
For
example,
if
you
want
to
use,
if
you
want
to
use
load
right,
you
can.
The
decent
documentation
is
quite
good.
I
mean
on
the
normal
ones,
it's
quite
good,
because
it
includes
a
lot
of
stuff,
but
the
guy
is
not.
The
guy
is
not
very
comprehensive,
but
the
normal
documentation
is
still
still
quite
good
when
they
have
a
lot
of
things
recommended
and
a
lot
of
stuff
have
the
examples
you
can
use
the
same
load
function
to
return.
A
You
have
written
a
single
field,
so
you
can.
You
want
to
return
like
a
tuple
also
can,
and
you
want
to
return
the
struct
okay
and
that's
why
this
struct
works
like
looks
sort
of
like
a
tuple.
A
A
A
We
can
answer
all
in
one
shot
when
you
get
started
right.
Lisa
uses
like
a
feature
feature
gate
say
if
you
want
to
use.
Postgres
you'll
just
specify
the
postgres
in
this
feature,
and
you
want
to
support.
If
you
want
to
use
sqlite,
you
just
use
sqlite
here
and
mysql
as
well.
You
put
my
sql
here,
so
this
is
usually
how
you
use
diesel.
A
A
A
A
A
So,
unlike
other
language,
disa
doesn't
provide
like
auto
migrate
as
in
like
because
they
don't
have
the
concept,
the
it
they
say
like
models,
and
it
will
automatically
create
the
database
models
for
you.
So
what
you
need
to
do
is
you
need
to
create
the
structures
yourself
like
you
need
to
run.
Write
the
raw
raw
queries
yourself
to
make
sure
the
types
is
correct
and
others
is
correct
after
you
write
this,
so
you
just
run
the
you
can
run
the
migration.
A
It's
already
run
your
real
redo
yeah.
So
this
will
run
the
migration
and
then
you
can
do
like
and
then
what
you
can
do
is
generate.
Let's.
A
A
So
what
it
does
is,
usually
you
print
a
schema,
and
then
you
have
you
can
see
in
my
schema.
It's
generated
this
isn't
the
normal
practice
in
russ,
where
you
generate
ras
code.
Usually
you
just
write
macro
yourself,
but
this
does
it
this
way
where
they
generate
this?
These
are
the
table
is
like
a
diesel
dsl.
You
don't
usually
write
this
yourself,
so
why
does
it
these
are
all
generated
by
diesel
they're
running
by
this
as
well?
Oh,
no
yeah!
It's
generated
by
diesel.
A
A
A
A
A
Time,
okay,
so
why
so,
maybe
you
can
look
into
what
is
the
generator
structures
in
diesel?
Is
the
local
documentation.
A
A
Okay,
so
these
are
the
generator
structures
that
I
have
no
schema,
so
it
it
will
generate
some
dsl
like
this,
so
you
can
use
it
like
you,
okay,
you
can
use
it
like
like
this,
like
the
one
show,
so
I
have
written
like
a
few
series
of
this.
I
have
some
experiments,
so
maybe
I'll
share
a
bit
on
the
experimentation.
A
So
when
I
get
into
diesel
the
hard
thing
is
like
the
learning
learning
the
different
you
need
to.
The
few
things
you
need
to
know
at
first
is
like
you
need
to
understand.
B
A
Okay,
so
I
have
a
just
now
the
example
that
I
showed
you
have
a
structure
like
this
and
then
I
want
to
do
a
join.
So
I
I
have
to
do
some
drawing
like
this,
so
these
will
have
like
by
default
you
you
can
don't
do
select
and
then
you
can.
You
can
have
that
explicit,
select
or
empty
select,
and
you
can
do
something
like
this
and
then
it
will
generate
some
queries
like
this.
A
Hey
so
long,
okay,
so
what
what
I
want
to
do
here
is
I
want
to
like
create
the
table.
I
want
to
find
based
on
the
users
that
have
name
john,
then
I
want
to
select
the
related
commands
or
post
and
the
users
I'm
going
to
select
the
comments
body,
what
what
this
user
commented
and
what
on
what
post
this
user
commented
and
on
the
username,
because
yeah,
it's
john,
so
all
you
can
see
here
is
this-
is
the
generator
dsl
yeah
user's
name
as
in
like
here,
hello,
schema.
A
A
So
these
are
the
generated
one
and
then
at
first
you
might
be
confused
here,
because
here,
if
you,
if
you
import
star
here,
hello,
schema
uses
dsl
star.
If
you
import
here,
then
you'll
be
a
bit
confusing
such
that
because
you
have,
this
is
re-exported
as
users,
so
your
user
table
is
now
called
like,
for
example,
users
table
is
now
called.
A
B
B
B
B
B
B
B
B
A
A
So
present.
A
A
I
think
just
now
I
talk
until
the
I
believe
here,
so
this
is
a
dsl
to
do
inner
join,
so
they
have
dsl
for
a
lot
of
things
like
you
can
do
inner
join
and
you
can
even
do
count
recently.
I
do
count
and,
and
then
there's
also
a
function
to
do
count,
so
you
can
do
like
select
count
dot
first,
so
that
has
support
for
something
like
this.
A
A
Multiple
drawing
experiment,
no
wrong
and
and
then
and
then
I
want
to
do
like
update
from
so
I
want
to
update
from,
like,
let's
say,
update
post
set
something
wear
something.
This
is
a
simple
in
diesel.
They
considered.
A
A
The
youtube,
so
they
consider
this
as
a
simple
example,
you
can
see
the
binds
here
like
in
this
one
is
just
now
the
debug
query
that
you
will
see.
So
what
you
do
here
is
in
the
user
table.
You
select
the
user
id
and
then
you
do
a
filter
and
then
you
you
can
filter
it
correctly
like
using,
and
then
this
is
doing
like
a
sub
query
already
this
yeah
equal
to
any
sub
query.
A
So
what
it
does
is
this
part
right
is
like
a
post
user
id
equal
to
any
it's
post
user
id
and
then
equal
to
any
is
within
this
part.
This
is
a
sub
query,
so
this
can
also
do
sub
query
and
then,
and
then
it
works,
and
here
yeah
here.
I
noticed
that
what
I
learned
is
the
dsl
part
is
a
bit
confusing
at
first,
but
after
you
get
to
know
the
docs
like
you
get
to
know.
A
A
Am
I
wrong
so
what
I
want
to
do
here
is,
I
want
to
do
like
undefined
in
one
table,
and
I
I
want
to
find
that
so
there's
two
tables
I
want
to
find
in
one
table
that
doesn't
exist,
find
stuff
from
two
tables
and
how
to
reword
this.
A
Oh,
oh,
the
post
that
doesn't
have
any
comments,
so
it
does
select
from
the
post
and
then
we
will
find
that
all
those
that
doesn't
have
you'll
find
all
those
that
doesn't
have
any
id.
So
you
see
that
it
generates
the
generated,
correspond.
Okay,
the
post
table.
You
can
do
a
left
join
here.
These
are
two
left
joint
correctly,
but
diesel
doesn't
support
the
composite
join
composite
joint
is
like,
if
you
don't
know,
composite
composite
joint
is
like
something
like
this.
A
A
And
then
comments,
this
is
like
composite
join,
but
this
doesn't
support
this.
Yet
they
also
say
it's
for
performance
reason,
so
these
are
only
support,
left,
join
and
inner
join
like
left,
join
inner
join,
but
there's
no
right
join.
A
And
then
yeah,
so
basically
you
do
something
like
this
post
tables,
so
you
can
do
like
the
tape
you
can.
This
is
the
original
dslr
way.
I
use
the.
A
A
This
is
comments
right
and
then
it
will
have
all
the
columns
because
you
can
see
that
it
re-exports
all
the
columns
right.
So
you
can
use
this
all
these
columns
directly
id.
So
you
need
to
write.
The
sum
of
the
trades
is
useful
here
like,
for
example,
you
can
see
that
there's
quite
a
lot
of
trade
being
implemented.
A
A
So
you'll
see
based
on
documentation,
just
search
for
something
like
this,
and
then
this
is
for
the
field,
and
then
you
can
search
for
is
now,
and
these
have
like
all
the
like
equal,
rather
than
doing
like
string,
rather
than
doing
string,
equal
you'll
see
like
equal
using
the
function
methods
on
expression
methods,
so
you
can
call
it
like
name,
equal
and
e.
Something
like
this
also
support
like
excluded,
like
even
with
I
tried
doing
upstairs.
It
also
support
absurd
and
there's
a
one
that
excluded
thing
here.
A
So
this
is
like
how
we
want
to
do
something
like
this
and
then
this
is
something
harder
already
I
tried
doing
offset
so
what
this
one
do?
What
in
this,
what
I
want
to
do
is
like
so
up
till
this
point
when
I
get
into
upset,
so
I
learn
like
diesel.
Oh,
it's
a
lot
easier,
a
lot
easier
compared
to
the
past,
where
I
had
to
figure
out
a
lot
of
stuff.
A
A
A
A
This
is
the
original
developer
of
diesel,
one
of
the
main
developer
there
or
you
can
also
use
tuples
where
you
can
do
like
a
new
user
id
equals
to
one.
Of
course,
this
is
not
like
the
normal
equal.
You
see.
This
is
not
the
in
the.
Where
course,
not
the
not
not
the
id
equals
to
in
a
way,
but
this
is
the
id
means.
One
and
name
is
john
and
then
values,
and
you
can
also
use
a
you-
can
even
use
a
vector.
A
You
know
if
you
want
to
insert
like
batch
users
right
and
I
can
insert
it
the
same
way
and
you
just
use
the
same
thing
and
that's
quite
interesting.
I
believe,
and
then
you
can
also
insert
with
structures,
but
the
structures
need
to
derive
insertable
and
you
need
to
have
code
table
name
but
like.
If
you
miss
something
like
this,
then
error
will
be
quite
confusing
at
first,
because
the
error
doesn't
sometimes
doesn't
point
to
the
correct
place.
But
if
you
miss
this
and
yeah,
this
is
how
roughly,
how
it's
done.
A
Okay-
and
one
thing
to
note,
is
diesel,
because
this
and
code
stuff
in
the
type
right
it
even
has
like
different
scripts
for
different
back
ends.
For
example,
returning
they
even
have
a
trade
call
support
returning
cost,
which
means
that
the
back
end
supports
returning
like,
for
example,
sqlite,
doesn't
supports
returning
right.
A
Returning
is
something
like
when
you
query
right.
You
can
get
back
the
like
when
you
insert
you
can
get
back.
The
original
data
like
like
you
can
give
it
original
id
what
you
have
in
what
you
inserted
and
you
can
get
back
the
original
fields
that
you
insert.
A
A
That's
why
there's
no
implementers,
but
for
like
something
like
something
like
the
postgres
supports
this
so
like
in
different.
If
you
use
different
backends
right,
some
of
the
features
might
not
be
there.
So
some
of
the
parts
you
can't
use
the
same.
You
can
use
the
same
rasco
for
everything,
because
they
even
support
like
diff
even
for
different
features.
They
even
implement
it
in
using
types.
A
So
there's
something
quite
mind-blowing
to
me
when
I
first
saw
they
even
have
other
supports,
like
a
support
default
keyword.
Example
on
complete
yeah.
This
support
on
conflict,
so
right
now
on
config
is
only
implemented
for
mysql,
no
postgres
and
sqlite.
A
Although
my
sql
have
it
last
time,
but
they
haven't
implemented
it
yet
so
it
means
that
they
don't
have
this
for
mysql
until
someone
implements
it.
So
this
is
upset,
so
you
can
do
on
conflict
and
they
can
do
update,
but
I
find
that
there
is
a
food
gun
here.
What
chilean
want
to
hear
is
it?
Is
it
still
there?
A
Okay,
so
because
absurd
is
new,
so
on
conflict?
What
you
can
do
is
you
can
put
anything
here
you
you
might
you
can
put
that,
even
because
the
id
is
absurd
right
on
conflict
supposed
to
be
something
that
is
either
a
primary
key
or
it's
a
unique
value,
but
because
right
now
they
don't
have
meta
data
information
on
the
type,
whether
that
type
is
a
primary
key
or
a
unique
value.
A
A
For
for
this
experimentation,
I
have
like
two
binaries
created,
because
I
have
a
bin
that
call
another
variable
called
iit
to
initialize
the
data,
so
I
want
to
attach
insertion.
So
this
is
like
how
I
insert
the
data
into
that.
A
A
A
Like
I
said
name
it,
it
will
run,
but
then
you
get
a
runtime
error
instead
of
compile
time
error
like
I
mentioned
before,
but
I
think
it
only
happens
for
this
part
because
I
didn't
get
to
see.
A
A
So
you
get
inserts
because,
but
I
think
adding
support
for
this
to
move
this
runtime
error
to
a
compiler
time.
Error
is
not
that
hard.
I
don't
know
I
didn't
try.
Maybe
I'll
try
doing
it,
because
this
auto
is
not
doing
that.
A
Okay,
so
this
last
project
I
start
facing
some
issues.
I.
What
I
wanted
to
do
I
want
to
do
group
by
okay
group.
Buy
is
new
in
diesel,
so
I
need
to
use
nightly
for
that
or
same
as
the
last
project.
I
also
need
to
use
lightning
for
that
nightly
diesel,
because
the
last
release
is
1.4
release
which
doesn't
have
a
group
buy
and
other
stuff,
so
they
are
still
open
for
feedback
right
now.
A
A
So,
based
on
comments,
no
group,
so
I'm
grouping
by
this
group
by
post
id
and
user
id
so
for
each
post
and
user.
How
many?
How
many
comments
are
there
for
that
post,
end
user
based
on
the
post,
end
user,
so
like,
for
example,
in
one
post,
a
user
may
have
commented
multiple
times,
so
I
want
to
count
in
total.
How
much?
How
many
is
that
so
at
first
I
I
want
to
try
something
like
I
even
tried
something
like
this,
which
is
not
already
as
not
a
balance
equal,
but
this
doesn't
compound.
A
So
it's
something
like
this.
A
A
A
Why?
Because
I
want
to,
I
get
the
account
in
the
sub
query
already,
but
because
this
doesn't
yet
support
elias
thing,
so
I
mean
a
license
as
in
count
like
like
this
id
as
I
count,
because
this
doesn't
support
this.
Yet
there's
an
active
pr
on
that.
But
nobody
continue.
The
original
author
wrote
way
in
progress,
go
in
progress
pr,
but
he
didn't
finish.
A
So
I
want
to
do
the
same.
I
don't
know
how
to
reference.
I
don't
know
how
to
use
this
to
reference
this,
so
basically
this
is
like
and
what
something
that
did
the
level
of
support.
It's
quite
it's
quite
interesting
already,
because
there's
a
lot
that,
based
on
this
aggregation
right,
listen
even
take
into
account
like
what
you
grow
by
and
what
you
select
say
if
you
grouped
by
something,
but
you
didn't
select
that
this
will
give
an
error.
A
A
So
I
need
to
write
my
own
struct
like
a
comment
count,
so
this
query
query
by
name
what
I
need
to
do
is
I
need
to
specify
the
types
myself
and
it's
not
right
and
oh
y'all
know
it's
kakun.
Can
you
mind
if
and
if
this
is
like
and
if
the
type
is
correct?
It's
wrong
right,
you'll.
I
also
get
an
error
like
this
and
it's
very
weird
right.
A
I
see
this
error,
but
I
don't
understand
why
I
get
this
error,
but
I
asked
in
a
guitar
channel-
and
they
mentioned
that,
oh
because
big
int
is
not
for
this,
so
I
need
to
use
thumb
I-64,
but
yeah
this.
This
part
right.
If
I
didn't
the
first
part,
if
I
didn't
do
the
second
query,
it
works,
but
you
can
only
get
the
user
id
and
post
id,
but
because
I
don't
want
to
do
another
query
again.
I
want
to
do
like
a
sub
query
thing,
so
I
can't
do
that.
So
what
does
I
need?
A
A
A
So
is
that
you,
you
have
the
choice
to
write,
use
the
full
quality,
the
full
dsl,
that
these
are
provides
that
just
I
showed
a
lot
or
you
can
use
this
halfway,
half
bit
dsl
or
you
can
use
the
ros
raw
query,
but
sometimes
I
find
valkyrie
very
good
in
good
enough
for
cases
like
this
I'll,
maybe
fall
back
to
queries,
and
this
also
provides
like
say:
if
you
want
to
use
some
special
functions
in
postgres
right,
you
can
still
use
it.
I
don't
know
what
is
that
called,
but
I
think
you
can.
A
You
can
see
that
they
there's
even
relationship
association
and
but
there's
also
a
bunch
of
across
here
and
yeah.
This
is
like
what
I
learned
from
diesel
is
like
they
can.
They
do
put
stuff
in
type
like
if
you
want
to
look
at
their
group
by
you'll,
see
that
they
even
have
like
a
very
grouping
where
a
lot
of
these
are
encoding
type
and
aggregate,
and
then
this
oh
look,
so
these
are
all
done
by
diesel
to
make
it
tight
safe.
A
B
B
A
A
Lately,
what
I
was
trying
to
do,
okay,
this
is
what
stock
stock,
so
what
there
is
like
a
stock
there's
like
a
stock
data
and
then
I
want
to
get
the
price,
and
this
is
what
I
I
did
so
I
what
what
it
involves
is,
I
have
like
it
will
download
the
data.
So
this
users
request
blocking
request.
A
Usually
I'll
just
to
our
trouble,
I
will
just
use
the
blocking
api
of
request
and
I
happen
to
need
gzip.
So
I
also
need
to
rgc
because
if
I
did
add
this
I'll
see
scramble
data
and
I
use
norm
for
passing,
because
I
was
doing
it
with
my
father.
My
father
was
doing
it
on
pandas
and
then
I
say
I
don't
want
to
use
pandas.
I
want
to
write
in
grass,
so
I
was
using
a
rust
already
and
I
finished
it
first
and
then
you
have
one.
A
A
A
A
A
lot
can
you
write
like
this
without
the
lifetime
a
lot
easier,
but
then
because
if
this
is
like
str
right,
because
this
is
like
a
static
sdr
and
then
when
I
change
it
to
string
which
which
became
like
sdr
and
then
it
suddenly
became
so
unergonomic,
where
everything
I
need
to
add
all
this
bunch
of
stuff
and
then
I
also
need
to
add
all
to
other
functions,
but
otherwise
it
will
be
very
nice
to
use,
I
will
say
norm
because,
but
I've
spent
some
time
troubleshooting
attack
yeah,
I
don't
even
know
which
tech
you
have
errors.
A
A
So
norm
you
need
to
know
like
you,
you
can
write,
you
can
write
past
right.
No,
no!
It's
a
password
combinator
for
us
where
you
can
write
some
functions,
merge
the
functions
together
and
then
do
the
passing,
but
I
just
find
this
only
this
part
now
I'm
going
to
make.
But
other
part
is
quite
quite
nice
too
right
where
I
just
write
one
part
and
then
I
just
copy
paste
copy
paste
everything
else
just
copy
paste,
although
I
can
write
a
function
for
you,
I
detent
lazy,
so
lazy
to
write
functions
for
that.
A
A
A
So
these
are
like
you've
seen
norm.
I
have
quite
a
lot
of
functions
so
a
lot
you
have
like
to
branching
to
combinator
to
mount.
You
can
choose
multiple
functions.
Okay,
I
won't
talk
about
long,
so
much
here
yeah,
so
it
works
and
it's
not
hard.
The
only
only
part
I
find
oh.
A
I
find
it
quite
easy
in
fact,
except
this
part,
because
the
chrono,
what
is
that
chrono
right
doesn't
work
with
chronos,
doesn't
integrate
with
tai
o3
pyro3
is
a
python
library
for
no
it's
a
python
integration
for
rus
or
ffa,
or
something
like
that,
but
it's
more
than
ffi,
because
you
can
write
like
you
can
write
like
a
titan
rust
pattern
class
in
rust.
A
So
what
it
does
is
I
I
just
lazy
to
change
the
this
type.
This
type
is.
This
is
the
date
chrono
date
type
because
chrono
doesn't
have
integration
with
pi
o3.
Yet
I'm
writing
a
pr
for
that,
but
they
don't
have
integration
yet,
so
I
just
convert
it
to
string
which
is
python
date
and
then
and
that's
why
it
came
out
like
this
yeah
temporary.
I
just
put
it
at
so
this.
This
is
run
in
python
pandas.
This
part
is
running
python,
but
this
is
compound
to
bite
code.
A
A
And
then
you
have
a
python
object
for
this,
because
that
there
isn't
a
derived
for
this
automatically
because
they
don't
know
what
you
want
to
derive,
what
type
of
object
you
want
to
derive.
So
that's
why
they
have
this
and
then
all
these
two
pi
object
then
works
and
you
can
even
convert
the
title
objects
to
rust
using
the
from
pi
object,
but
they
have
a
derived
for
that.
So
this
is
roughly
how
it
looks
like
using
python.
So
the
the
it's
quite,
it's
quite
straightforward
to
do
this.
A
So
let's
say:
if
you
are
missing
something,
then
if
you're
missing
something
you
you
are
lazy,
then
you
can
just
comma
to
python
and
then
make
that
I'll
choose
a
python
and
then
just
run
it
here.
There's
also
inline,
there's
also
inline
javascript.
I
I
think
there's
enough
javascript
as
well,
but
I
didn't
haven't
tried
that,
but
I
tried
this
so
far.
It's
working
fine.