-
-
Notifications
You must be signed in to change notification settings - Fork 60
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
PostgreSQL DATETIME serialization invalid #1605
Comments
@TimMensch I understand your frustration. Unfortunately, the Postgres wire protocol is not well documented, and our development sometimes is based on trial & error and/or checking other open-source projects to see how they make it work. About this specific case, I added a couple of tests in our test suite and managing date and datetime types via Did you set a particular date time? Like with a command |
Sorry. I did set What I see as the raw field info is: There's a "data type ID" of 1082 for the DATETIME fields. I don't see a "timestamp" type in your docs? Just DATETIME (for the SQL API). Digging through the The raw data rows come in looking like this: Those dates fail to parse as ISO dates. The fix should be trivial: Always serialize dates to ISO dates. Clearly that's what |
Glancing at your source, I see this: if (queryText.startsWith("SET ")) {
setConfiguration(queryText);
resultSet = new IteratorResultSet(createResultSet("STATUS", "Setting ignored").iterator());
}
// ... From this file. As far as I can tell, Digging into If I use the proper case for all the parts, instead of getting a thrown error, I see the "Setting Ignored" return result, which is frankly odd, but you can see it in the source above, so I know it's at least calling But the real problem is that it doesn't change the date string formats. Same output as above.
It wouldn't hurt to have tests for the top five non-Java environments as well as your internal tests. Setting up Node and test code is positively trivial. Not sure where you're seeing that Sample queries that will get you your OID documentation straight from Postgres. Turns out that Sorry for the frustration. I really wanted to use ArcadeDB. But this is a showstopper for me. If it's not as trivial to fix as I would expect, then a documentation update should be top priority, to warn people that your PostgreSQL driver is only alpha quality or experimental--otherwise we're led to believe all of ArcadeDB is only alpha quality. A database needs to be worthy of trust. You list |
ArcadeDB Version:
v24.4.1 (build c714a4f5c827d742d6edd0f7788fe049bc63607b/1713579699346/main)
OS and JDK Version:
Running on Linux 5.15.146.1-microsoft-standard-WSL2 - OpenJDK 64-Bit Server VM 11.0.22 (Temurin-11.0.22+7)
Expected behavior
PostgreSQL API produces DATETIME readable by PostgreSQL clients (i.e., ISO date/datetime).
Actual behavior
Actual date format (regardless of database date format) looks like:
Sun May 19 17:05:11 UTC 2024
instead of2024-05-19T17:05:11Z
.Steps to reproduce
(Note the
ALTER PROPERTY
is still required above for thecreatedAt
field to be auto-set; I commented on a closed bug that claimed this was fixed, but I've tested and it very much isn't fixed in the current build. That was bug number one that I found. This is pretty basic functionality--an auto "createdAt" field--and it was a surprise to find that it was flaky.)In particular, if you're using the very standard
pg
Node.js library to access the PostgreSQL API, all resulting date fields will all benull
, because it tries to parse the date strings as if they're ISO strings. Which is what PostgreSQL would put there.This is two major bugs I've hit in two days of playing with ArcadeDB. It looks like an awesome project, and I love the philosophy, but two major bugs in two days that both required me to dig deeper to figure out what was happening means I'm going to be looking for a more mature alternative for now. Maybe I'll try it again in a year and see how you're all doing; I want to be working on my project, not spending all my time submitting bug reports on (or fixing) ArcadeDB.
It was already a huge red flag that you didn't have a standard Node library set up to work with ArcadeDB. I get that you're probably Java developers, but everyone knows they need to support Node and TypeScript at this point, yes?
The text was updated successfully, but these errors were encountered: