Skip to content
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

apoc.meta.data() reports wrong property type information #1319

Closed
moxious opened this issue Oct 17, 2019 · 3 comments
Closed

apoc.meta.data() reports wrong property type information #1319

moxious opened this issue Oct 17, 2019 · 3 comments
Assignees
Labels

Comments

@moxious
Copy link
Contributor

moxious commented Oct 17, 2019

Replication that worked for me:

create (:A { x: 1 }), (:A { x: 'Foo' });
create (:B { x: 'Foo' }), (:B { x: 'Foo' }), (:B { x: 1 });
CALL apoc.meta.data();

This setup is intentionally to confuse APOC. For both labels A and B, the property X is typed both string and long.

The APOC call:

Screen Shot 2019-10-17 at 2 48 47 PM

This procedure uses a sampling configuration as specified by the config parameters, which is a MetaConfig object. The sampling appears respected, but the property type information stored in the MetaResult class is "last type in wins".

I would say this behavior is incorrect. There are two possible correct behaviors:

  1. Return an array of different types the property could have, as observed in the sample ["Long", "String"]
  2. Perform some type-coercion, and always report "String" as a single property type, because it is the widest of all observed types.
@moxious
Copy link
Contributor Author

moxious commented Oct 17, 2019

I found this because the issue is related to a PR in progress. In that PR APOC will have different stored procs that return the array of encountered types (fix suggestion 1) . #1318

@jexp
Copy link
Member

jexp commented Oct 29, 2019

for the type field I would probably coerce to string
and add another field types that has the full list either single element or multi

@jexp
Copy link
Member

jexp commented Oct 29, 2019

Probably also need to adapt in apoc.meta.schema

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
4 participants