<rapha>
what's the recommended java version for jruby 9.4.1.0?
<rapha>
(i know the readme says "version 8 or higher", but then, the readme also says "rbenv install jruby-9.2.13.0", so i figure it mightn't have been updated in a while)
<byteit101[m]>
enebo: -Ptest fails, with tsame java-base add opens warning as before
<enebo[m]>
byteit101: thanks. mvn was issue for GHA but now it does have one F on tempfile cleanup (which makes sense to see an issue like that on windows but I think this used to be green on GHA
<byteit101[m]>
3 failures
<enebo[m]>
ah so some differences. I will also try now :)
<enebo[m]>
byteit101 0 problems for me but I see the [Error] Note thing
<enebo[m]>
lol
<enebo[m]>
Someone I manage to get that tab inserted
<byteit101[m]>
not an error, but warning from not maven
<enebo[m]>
byteit101: anyways that I think is mvn or how we are invoking noticing we are passing in something via JDK_JAVA_OPTIONS (or what that env var is)
<byteit101[m]>
Yes, I saw that comment in output too
<enebo[m]>
We may be able to invoke Java in a way which doesn't see that but I think that is the issue
<byteit101[m]>
but spec is also failing still (outside of mvn_
<enebo[m]>
I have no failures in -Ptest at all on my env
<enebo[m]>
I did have issues until I did a mvn clean where it was picking up an older jar somehow
<enebo[m]>
but those errors were only mismatched version of JRuby tests
<byteit101[m]>
this is a fresh install as of like 2 weeks ago, though I updated yesterday
<enebo[m]>
Also I am using 17 on windows
<byteit101[m]>
I tried 19 and 17
<byteit101[m]>
same thing
<enebo[m]>
If you have gist the errors perhaps we can figure it out
<byteit101[m]>
very clean VMs
<enebo[m]>
Mine is not clean :)
<byteit101[m]>
had to install ant and java fresh for this
<enebo[m]>
kares: do you know much about regproc on postgres?
<enebo[m]>
In updating oid registration this oid comes back for some resultsets and then tries to look it up
<kares[m]>
enebo[m]: Nope
<enebo[m]>
ok
<kares[m]>
Probably a driver thing,converting?
<enebo[m]>
dr-itz had added some code which I think maybe I need to reexamine a bit more since jdbc seems to return string oid and current pg ar stuff only uses fixnum oid values
<enebo[m]>
JDBC has a numeric type method but what it returns is not the oid value we are looking for apparently
<enebo[m]>
I have 3F and 2E on your local tests with my updates but I get tons of "I have no idea on this typie ... using string"
<byteit101[m]>
WARNING: Unknown module: org.jruby.dist specified to --add-opens
<byteit101[m]>
WARNING: Unknown module: org.jruby.dist specified to --add-opens
<byteit101[m]>
WARNING: Unknown module: org.jruby.dist specified to --add-opens
<byteit101[m]>
^ That's the overwhelming output when running spec
<kares[m]>
yeah it's usually best to not rely on the auto casting from the driver ... which happens based onmetadata
<enebo[m]>
byteit101: oh ok I will need to try spec run to see if I see that. I did not notice that in -Ptest
<byteit101[m]>
spec hangs, I filed a ticket a few weeks ago
<enebo[m]>
kares: there is some serious overhead we can kill on postgres if we can get some site caching
<enebo[m]>
it will dyn call making results back to oid type map stuff in Rails to regenerate column metadata
<enebo[m]>
this could not only use a Java table we could probably cache the resultset column info and just clone it the next time that site is called
<kares[m]>
Yeah I recall the new stuff from dr-itz did a few callMethod on hot paths
<enebo[m]>
I think rdubya may have done this with the result type
<kares[m]>
but it's been a while for me...
<enebo[m]>
but it is ok. we were still pretty fast in comparison
<kares[m]>
I only tested MySQL so I do not know about PG
<enebo[m]>
I just realized if we could site cache that metadata row it would just be a clone per call
<headius>
Good morning
<headius>
I'm going to be looking into some of these JFFI issues so we can fix them for 9.4.2
<headius>
At the very least this glibc thing
<enebo[m]>
I also wondered if some calls to Result and some are more raw but I have not started looking at it yet today
<headius>
Super freaking annoying that RHEL is locked to some ancient version of glibc but that's the way it is
<enebo[m]>
on major motivation in PG:Result was being able to partially emulate pg itself so I am happy that is there
<kares[m]>
believe in MySQL we extract strings as bytes ... which avoids intermittent Java string
<enebo[m]>
mini_sql and some other things mostly work
<enebo[m]>
that might be true of postgres too but I would have to look
<enebo[m]>
the truth is we register all the default OIDs on setup and this regproc thing is constantly happening so if I can figure out what the hell it is I can register it
<enebo[m]>
headius: I am trying to just get this last snag on local arjdbc tests not passing postgresql but the oid type mapping stuff is not simple when you don't understand it 😀
<enebo[m]>
I may have to read a lot of code now
<headius>
maybe learn
<enebo[m]>
haha
<enebo[m]>
bill henley learned it
<headius>
good old bill
<byteit101[m]>
oh speaking of pg and kares being around, what should I go about to get unixsocket jars as a gem for postgres?
<byteit101[m]>
the homepage of jdbc-postgresql looks like a very old and different gem
<headius>
we ship with jnr-unixsocket, is that not enough?
<byteit101[m]>
not to use the "official" documentation jdbc strings
<enebo[m]>
oh wait
<byteit101[m]>
let me find it real quick
<enebo[m]>
byteit101: I don't think that is a real gem
<byteit101[m]>
*postgres not postgresql
<enebo[m]>
Or I think someone started a gem to do native pg stuff but no one worked on after a point
<headius>
I did
<headius>
and then someone else did a massive amount of additional work to actually port the pg C library into it
<headius>
arjdbc-pgsql would just use jar-deps to depend on the published pgsql jdbc maven artifact, and then that would pull in the junixsocket jar too
<enebo[m]>
I actually just updated to a later version yesterday on that
<enebo[m]>
this is part of arjdbc
<byteit101[m]>
was trying to follow sequel docs, but jdbc/jruby wasn't obvious
<enebo[m]>
I did not commit it but I saw a dependabot thing on it
<enebo[m]>
I thought you were talking about a different thing not arjdbc
<enebo[m]>
but it would be nice to not have to commit those artifacts into a repo
<byteit101[m]>
This was for a nearly one-off script, and I've used sequel before, so tried to find unix socket connections/postgres stuff from there, but only saw proper jdbc documentation
<enebo[m]>
so we support unix socket cnonection mechanism and that itself is leveraging the postgresql driver we ship in arjdbc
<headius>
someone should try using panama to generate a Java binding to the pg native library
<headius>
that would be hot
<headius>
sorry, that would be fire
<enebo[m]>
headius: it would make supporting it a lot simpler
<headius>
that's for sure
<headius>
we could write the entire adapter in Ruby
<byteit101[m]>
once I got the jars ^ it just worked with sequel, but the documentation and setup was lacking
<enebo[m]>
but as I just said I see some optimization potential for using arjdbc still
<enebo[m]>
like site caching statement metadata for result sets and just cloning it
<headius>
and of course the portability aspect is still huge
<enebo[m]>
yeah like windows
<enebo[m]>
although I am sure pg does compile if the right wizard builds it
<enebo[m]>
although perhaps it is a binary gem
<headius>
never trust a wizard
<enebo[m]>
yikes
<headius>
🧙♂️
<enebo[m]>
why is that so big
<headius>
🧙🏿♀️
<enebo[m]>
foo🧙♂️🧙🏿♀️
<enebo[m]>
hmm
<enebo[m]>
The more I discover of this client the weirder it gets
<headius>
it's not super big for me, maybe 2.5 lines high
<enebo[m]>
yeah but a single char if you add any textr
<headius>
but yeah some chat clients do this for standalone emoji
<enebo[m]>
ok I will take your word for that
<headius>
🧙♂️💩
<byteit101[m]>
my client (fractal) is also 2.5 lines tall for emoji-only lines
<enebo[m]>
haha ok so if only emoji go big or go home
<headius>
ok one of these jnr things may just be an unimplemented feature
<byteit101[m]>
though if I scroll up too far in history it garbles my text for some reason
<headius>
I'm going to focus on the glibc version thing
<enebo[m]>
Too bad twitter is not like this...I could spam elon
<enebo[m]>
headius: the RHEL old vs new glibc?
<headius>
yeah
<enebo[m]>
cool
<headius>
most of the linux jffi libs are being built via GHA or GHA + qemu + docker so I'll have to figure out how to force an older glibc
<enebo[m]>
<byteit101[m]> "?socketFactory=org.newsclub.net..." <- This is interesting. I did not realize this was possible
<enebo[m]>
Or if I did I forgot
<enebo[m]>
It would be a boon if arjdbc could just connect like this
<enebo[m]>
kares: ^
<enebo[m]>
I always use localhost + pw/port connection
<byteit101[m]>
socket connections are handy but often unused. Note the full uri is 'jdbc:postgresql://locahost/yourdatabasetame' plus the query string above
<enebo[m]>
but I might just be a bit ignorant on this
<headius>
maybe we can configure a different socket factory and add it to jnr-unixsocket?
<byteit101[m]>
this is the only server I use that has socket auth only
<headius>
or patch the driver to allow us to configure it
<byteit101[m]>
that would be handy, but then we would need to document it either on jruby or sequel, etc
<enebo[m]>
yeah just wrap it and make it super convenient
<enebo[m]>
monkeypatch magic
<enebo[m]>
arjdbc will add some stuff and formulate a connection string with at least some options
<byteit101[m]>
(for reference, I'm not using active record with this one-off script, just sequel)
<kares[m]>
enebo[m]: yeah I can imagine it would work, MySQL driver added Unix connection a while back, but there wasn't much demand for it in the end, what's the benefit - avoiding TCP?
<enebo[m]>
kares: just simplicity of matching up with an existing config
<kares[m]>
okay
<enebo[m]>
If someone wants to try JRuby they need to probably change PG config to even allow networking
<byteit101[m]>
Auth can also be simpler sometimes, the server I am using just uses no password, only your OS username as the db username
<enebo[m]>
in prod this is not a big deal but as a dev kicking the tires it is a pain
<enebo[m]>
it is a pain for me personally every time I re-install postgres I am editing that auth config stuff in postgres
<byteit101[m]>
all of the usages of it I've seen (which is like 3 over 15 years) is auth-focusd
<byteit101[m]>
(pg and mysql both )
<enebo[m]>
I should not use pg to say postgres but postgres is icky to type I will say 'pg gem' otherwise I mean pg == postgres
<byteit101[m]>
do you mean postgresql when you type postgres ? ;-D
<enebo[m]>
byteit101: the unix domain socket is just the default setup
<enebo[m]>
hahaha
<enebo[m]>
yeah postgresql
<enebo[m]>
postgres is dead right?
<byteit101[m]>
uh, I though the proper name is postgresql and postgres is the colloqialism
<enebo[m]>
no I don't think so
<enebo[m]>
I think postgres was a version of ingres which added effectively oids
<byteit101[m]>
oh nope you are sort of right, it used to be called postgres decades ago before sql support was added
<enebo[m]>
but I think back then it was a commercial product
<enebo[m]>
but I remember a friend was going gaga over postgres I think in the late 80s at work
<headius>
didn't it grow out of ingres or was it a separate project to make an open-source ingres?
<enebo[m]>
and I also thought it support sql although perhaps it was not "technically" sql like most dbs back then were sql-like
<byteit101[m]>
yes
<byteit101[m]>
wikipedia page has the history
<enebo[m]>
headius: yeah I think it was just custom data types on ingres
<enebo[m]>
oh good idea :)
<byteit101[m]>
setting the env var lets spec not hang on windows, but 234 failures, 153 errors
<enebo[m]>
ah yeah funny how many enduring things have come out of berkeley
<enebo[m]>
I suppose unix cannot be attributed to berkeley but it did a lot to popularize it as sysv unix was not nearly as popular among at least the college crowd
<byteit101[m]>
gotta go now, but the windows errors are holding up my subspawn-win32 developement
<enebo[m]>
byteit101: sorry which env did you set?