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

release next version #603

Closed
4 tasks done
kbrock opened this issue Feb 24, 2023 · 6 comments
Closed
4 tasks done

release next version #603

kbrock opened this issue Feb 24, 2023 · 6 comments

Comments

@kbrock
Copy link
Collaborator

kbrock commented Feb 24, 2023

@kbrock
Copy link
Collaborator Author

kbrock commented Feb 24, 2023

probably definitely not for this release

In the future, possibly setup config for the following:

  • set materializedpath2 as the default
  • no self returned from siblings
    • alternative: self.siblings.without(self)
    • look at how other gems name this. one example: siblings_with_self
  • introduce gemspec.post_install_message warning that you need to set these configs for upgrades
  • no siblings returned from roots.first

updated

@kshnurov
Copy link
Contributor

Well, the main branch is already at 4.3 with a proper changelog. All you need it to update RubyGems.

#601 is just a README change, nothing to release here.

materializedpath2 is the default - I agree, but it should be a major version bump.

@kshnurov
Copy link
Contributor

It started as ascii varchar, and prefer to get it as close to the original field as possible. But I would like to document the binary case that you mention. I would like that case better if the sql generated were text and not escaped binary. Want to change mysql to a binary column. (character set=ascii would be preferable but just too hard)

I guess you should just read about database collations/character sets, what they do and when they are needed. This gem doesn't need ascii, C, latin or whatever collation there is. binary is all that's needed, it's faster and takes less space.

@kshnurov
Copy link
Contributor

no self returned from siblings

Why? It would be a very simple, but breaking change.
Whoever needs that, should just do self.siblings.without(self), that'll produce a proper SQL.

@kshnurov
Copy link
Contributor

track down test disabled for postgres extension. Thought it was for update_descendants_after_update. I possibly already fixed this. can't find it

It's this one. I'm strictly against this SQL strategy anyway, there's nothing good in skipping all Rails callbacks. It's not even updating the updated_at - cache won't be invalidated.
Btw, have no idea why the README says it's PG only, should also work with MySQL.

@kbrock
Copy link
Collaborator Author

kbrock commented Feb 28, 2023

re #601: In postgres, binary seems to use indexes better than the collation mode. So this is an improvement. But the sql generated is hard to read:

SELECT "users".* FROM "users" WHERE ("users"."ancestry" LIKE '\x383737362f25' OR "users"."ancestry" = '\x38373736')

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

No branches or pull requests

2 participants