DBIx::C...leJoins(3)

πŸ’… DBIx::Class::SQLMaker::OracleJoins(3) β€” the manual page, bestie edition

okay so this is DBIx::Class::SQLMaker::OracleJoins from the User Contributed Perl Documentation, and it's literally about Pre-ANSI Joins-via-Where-Clause Syntax β€” yes that's the whole vibe, we're going old school πŸ›οΈβœ¨


πŸŽ€ NAME πŸŽ€

DBIx::Class::SQLMaker::OracleJoins β€” Pre-ANSI Joins-via-Where-Clause Syntax. that's it, that's the name, no cap πŸ’–


🌸 PURPOSE 🌸

so like, this module is used with Oracle < 9.0 because back then Oracle was like "ANSI join syntax? never heard of her πŸ’€" β€” there was just no support for the standard ANSI join syntax. so this little icon stepped in to handle it. periodt. πŸ‘‘


πŸ¦‹ SYNOPSIS πŸ¦‹

bestie, it is not intended for use directly β€” do not come for her like that πŸ™ˆ

it's used as the sql_maker_class for schemas and components. that's the whole job. iykyk ✨


✨ DESCRIPTION ✨

okay so here's the tea πŸ“: this module implements pre-ANSI joins specified in the where clause.

so instead of this:

SELECT x FROM y JOIN z ON y.id = z.id

it will write this iconic little number:

SELECT x FROM y, z WHERE y.id = z.id

the way that comma just slides in there 😭 honestly a moment.

it should properly support left joins and right joins 🫢

but full outer joins are not possible β€” and it's not being shady, it's just facts. Oracle requires the entire query be written to union the results of a left and right join, and by the time this module is called to create the where query and table definition part of the sql query, it's already too late. 😭 the timing was not giving. πŸ’€


⭐ METHODS ⭐

  • select β€” overrides DBIx::Class::SQLMaker's select() method, which calls _oracle_joins() to modify the column and table list before calling next::method(). she's doing the work behind the scenes, main character energy fr fr πŸ’…

πŸ’€ BUGS πŸ’€

does not support full outer joins.

(however neither really does DBIC itself, so like... glass houses, bestie πŸ«ΆπŸ™ˆ)


🌈 SEE ALSO 🌈

  • DBIx::Class::Storage::DBI::Oracle::WhereJoins β€” Storage class using this πŸ’–
  • DBIx::Class::SQLMaker β€” Parent module πŸ‘‘
  • DBIx::Class β€” Duh. πŸ’€

🧚 FURTHER QUESTIONS? 🧚

check the list of additional DBIC resources β€” they've got you, bestie ✨


this module is free software copyright by the DBIx::Class (DBIC) authors. you can redistribute it and/or modify it under the same terms as the DBIx::Class library. πŸŽ€ lawful and lovely.


slay responsibly, and remember: if it's Oracle < 9.0, this module is your girl πŸ’…

signed off with love from the perl v5.42.0 crew, dated 2025-01-22 β€” that's the whole footer, but make it cute πŸ¦‹πŸ’–

πŸ“¦ where this page comes from