Rose::...::Entry(3pm)

πŸ’– NAME πŸ’–

Okay so hi bestie 🫢 this is the manual page for Rose::DB::Registry::Entry β€” it's a data source registry entry. That's the whole name. She lives in the User Contributed Perl Documentation section as Rose::DB::Registry::Entry(3pm), and if that 3pm means nothing to you: it's a Perl 5 module page, go read it, it ate. πŸ’…


🌈 SYNOPSIS 🌈

Here's the whole vibe in one look. Copy-paste her, she's perfect:

use Rose::DB::Registry::Entry;

$entry = Rose::DB::Registry::Entry->new(
  domain   => 'production',
  type     => 'main',
  driver   => 'Pg',
  database => 'big_db',
  host     => 'dbserver.acme.com',
  username => 'dbadmin',
  password => 'prodsecret',
  server_time_zone => 'UTC');

Rose::DB->register_db($entry);

# ...or...

Rose::DB->registry->add_entry($entry);

...

πŸ¦‹ DESCRIPTION πŸ¦‹

So Rose::DB::Registry::Entry objects are these little containers that hold info about a single Rose::DB data source. That's their entire job and they do it flawlessly. 🌟

Wanna know what a data source even is? Go read the Rose::DB documentation, bestie. And wanna know how these entry objects get managed and shoved around? That's the Rose::DB::Registry documentation's whole thing. πŸ“š

Also β€” important lineage check ✨ β€” Rose::DB::Registry::Entry inherits from, and follows the conventions of, Rose::Object. So if you're confused about any of the base-object behaviour, the Rose::Object documentation is where you find it. Family tree matters, iykyk. 🌳


✨ CONSTRUCTOR ✨

new PARAMS

Builds you a brand new Rose::DB::Registry::Entry object out of PARAMS, and PARAMS are just name/value pairs, classic. And the cute part: any object method is a valid parameter name. So like, whatever you can call on her, you can pass at birth. slay πŸŽ€


πŸ‘‘ OBJECT METHODS πŸ‘‘

🌸 GENERAL 🌸

  • autocommit [VALUE] β€” get or set the value of the AutoCommit connect option. πŸŽ›οΈ
  • catalog [CATALOG] β€” get or set the database catalog name. Heads up: this one is only relevant to databases that actually support the concept of catalogs. If yours doesn't, she just sits there being decorative. πŸ—‚οΈ
  • clone β€” gives you back a clone of the current object, and yes bestie, a deep copy. No shared references, no sneaky aliasing, no drama. πŸͺž
  • connect_option NAME [, VALUE] β€” get or set the connect option called NAME, and it hands you back the current value of that connect option. 🎯
  • connect_options [HASHREF | PAIRS] β€” get or set the options that get passed as a hash reference, as the fourth argument to the call to DBI->connect(). For what all these options even do, go read the DBI documentation, she explains it better than I can in a group chat. πŸ’¬

Now, the behaviour: if you hand her a reference to a hash, she replaces the connect options hash entirely. If you hand her a series of name/value pairs, those get added to the connect options hash. So one is a takeover and one is a merge, do not mix them up. πŸ’€

Return value is context-dependent: a reference to the hash of options in scalar context, or a list of name/value pairs in list context. πŸͺ„

  • database [NAME] β€” get or set the database name. ez. πŸ—„οΈ
  • description [TEXT] β€” a description of the data source. Just vibes, but like, documented vibes. πŸ“
  • domain [DOMAIN] β€” get or set the data source domain. ⚠️ But okay listen: changing the domain after a registry entry has already been added to the registry has no affect on where the entry appears in the registry. She's already filed, bestie, moving her label doesn't move her filing cabinet. πŸ—ƒοΈ
  • driver [DRIVER] β€” get or set the driver name. And the DRIVER argument gets converted to lowercase before it's set. So PG? She's pg now. lowercase supremacy fr fr. πŸ”‘
  • dsn [DSN] β€” get or set the DBI DSN (Data Source Name). ⚠️ But here's the tea: an explicitly set DSN may render some other attributes inaccurate. Like, the DSN might contain a host name that's different than the object's current host() value. The recommendation is literally: don't set the DSN value explicitly unless you're also willing to manually synchronize (or ignore) the corresponding object attributes. You've been warned, don't come crying. 😭
  • dump β€” returns a reference to a hash of the entry's attributes. Only attributes with defined values show up as hash keys β€” undef ones ghost the party. πŸ‘» And all values? Deep copies. 🧬
  • handle_error [VALUE] β€” get or set the value of the HandleError connect option. 🚨
  • host [NAME] β€” get or set the database server host name. πŸ–₯️
  • password [PASS] β€” get or set the database password. 🀫 (don't commit her, bestie)
  • port [NUM] β€” get or set the database server port number. πŸ”Œ
  • pre_disconnect_sql [STATEMENTS] β€” get or set the SQL statements that run immediately before disconnecting from the database. STATEMENTS should be a list or a reference to an array of SQL statements. βœ‚οΈ

Returns a reference to the array of SQL statements in scalar context, or a list of SQL statements in list context. πŸŒ€

  • post_connect_sql [STATEMENTS] β€” get or set the SQL statements that run immediately after connecting to the database. STATEMENTS should be a list or a reference to an array of SQL statements. πŸ“₯

Returns a reference to the array of SQL statements in scalar context, or a list of SQL statements in list context. πŸŒ€

  • print_error [VALUE] β€” get or set the value of the PrintError connect option. πŸ–¨οΈ
  • raise_error [VALUE] β€” get or set the value of the RaiseError connect option. πŸ“’
  • schema [SCHEMA] β€” get or set the database schema name. This one is only useful to databases that support the concept of schemas, e.g. PostgreSQL. 🐘
  • server_time_zone [TZ] β€” get or set the time zone that the database server software uses. TZ should be a time zone name that DateTime::TimeZone understands β€” go check that documentation for which values of TZ are acceptable, because she's picky. πŸ•°οΈ
  • type [TYPE] β€” get or set the data source type. ⚠️ Same warning as domain, bestie: changing the type after a registry entry has been added to the registry has no affect on where the entry appears in the registry. Filed is filed. πŸ“
  • username [NAME] β€” get or set the database username. πŸ§‘β€πŸ’»

🌸 DRIVER-SPECIFIC ATTRIBUTES 🌸

MySQL

Okay so these ones are exclusive β€” these attributes should only be used with registry entries where the driver is mysql. Anywhere else and you're just being chaotic. βœ‹πŸ¬

Every single one of these works the same way, so here's the pattern, said once per attribute because I refuse to skip anybody πŸ’–: she sets the value directly on the dbh if one exists. If there's no dbh yet, she'll set it when the dbh gets created. And if no value is defined for the attribute (that's the default) then she won't set it when the dbh is created at all β€” she defers to whatever default value DBD::mysql chooses. The getter gives you the value in the dbh if one exists, otherwise the value that will be set when the dbh is next created. Got it? Good. 🌈

  • mysql_auto_reconnect [BOOL] β€” get or set the mysql_auto_reconnect database handle attribute. Sets directly on the dbh if there is one, otherwise it's queued up for when the dbh is created. No value defined (default) = it won't be set at creation, she leaves that to DBD::mysql's own default. πŸ“– See the DBD::mysql documentation to learn more about this attribute. πŸ”
  • mysql_client_found_rows [BOOL] β€” get or set the mysql_client_found_rows database handle attribute. Straight onto the dbh if it exists; otherwise it's set the moment the dbh is created. If nothing's defined (default), she doesn't set it at creation β€” whatever DBD::mysql picks is what you get. πŸ“– See the DBD::mysql documentation to learn more about this attribute. πŸ”’
  • mysql_compression [BOOL] β€” get or set the mysql_compression database handle attribute. Applies directly to the dbh when one exists, else it gets set when the dbh is created. Leave the value undefined (the default) and it just won't be set at creation time β€” DBD::mysql's default stays in charge. πŸ“– See the DBD::mysql documentation to learn more about this attribute. πŸ—œοΈ
  • mysql_connect_timeout [BOOL] β€” get or set the mysql_connect_timeout database handle attribute. It goes right on the dbh if one's there, and if not, it lands when the dbh is created. No defined value (the default) means nothing gets set at creation, deferring to whatever default DBD::mysql chooses. πŸ“– See the DBD::mysql documentation to learn more about this attribute. ⏳
  • mysql_embedded_groups [STRING] β€” get or set the mysql_embedded_groups database handle attribute. If a dbh exists she sets it directly on it; otherwise she sets it whenever the dbh is created. Attribute value undefined (the default)? Then it doesn't get set at creation, and DBD::mysql's own default wins. πŸ“– See the DBD::mysql documentation to learn more about this attribute. πŸ«‚
  • mysql_embedded_options [STRING] β€” get or set the mysql_embedded_options database handle attribute. Set live on the dbh when one exists; set at dbh-creation time when one doesn't. If no value is defined (the default), it stays unset at creation, deferring to whatever DBD::mysql chooses. πŸ“– See the DBD::mysql documentation to learn more about this attribute. 🧩
  • mysql_enable_utf8 [BOOL] β€” get or set the mysql_enable_utf8 database handle attribute. Directly on the dbh if it exists, otherwise queued for when the dbh is created. Undefined (the default) = not set at creation, and DBD::mysql's default gets the final say. πŸ“– See the DBD::mysql documentation to learn more about this attribute. 🌍
  • mysql_enable_utf8mb4 [BOOL] β€” get or set the mysql_enable_utf8mb4 database handle attribute. On the dbh right away if one's around, else it's applied at dbh creation. Leave it undefined (that's the default) and it won't be set at creation at all β€” she defers to DBD::mysql's chosen default. πŸ“– See the DBD::mysql documentation to learn more about this attribute. πŸ¦„
  • mysql_local_infile [STRING] β€” get or set the mysql_local_infile database handle attribute. Sets directly on the dbh when one exists; sets when the dbh is created when it doesn't. No defined value (the default) means she won't set it at creation, deferring to whatever default DBD::mysql chooses. πŸ“– See the DBD::mysql documentation to learn more about this attribute. πŸ“‚

✨ mysql_multi_statements [BOOL] ✨

Get or set the mysql_multi_statements database handle attribute. If there's already a dbh hanging around, it gets set straight up on that dbh. No dbh yet? Then it just waits patiently and gets set the moment the dbh is born. 🍼

And if you never defined a value for this attribute β€” which, plot twist, is the default β€” then it won't be set when the dbh is created at all, and we just defer to whatever default DBD::mysql feels like choosing. Let the driver decide, live your life.

It returns the value of this attribute in the dbh, if one exists, or else the value that will be set when the dbh is next created.

See the DBD::mysql documentation to learn more about this attribute. πŸ“–


🌸 mysql_read_default_file [STRING] 🌸

Get or set the mysql_read_default_file database handle attribute. Existing dbh? It's set directly on it, immediately, no waiting. Otherwise it gets applied when the dbh is created.

If you haven't defined a value for this attribute (the default, bestie), it will not be set when the dbh is created β€” instead we defer to whatever default value DBD::mysql picks. ✨

Returns the value of this attribute in the dbh, if one exists, or the value that will be set when the dbh is next created.

See the DBD::mysql documentation to learn more about this attribute. πŸ’–


πŸ¦‹ mysql_read_default_group [STRING] πŸ¦‹

Get / set the mysql_read_default_group database handle attribute. There's a dbh already? Set directly on it. No dbh yet? It'll be set right when the dbh gets created. Either way, handled.

No value defined for this attribute (the default) means it won't be set when the dbh is created, and we simply defer to whatever DBD::mysql's default is. Not us making that call, okay?

Returns the value of this attribute in the dbh, if one exists β€” or the value that'll be set when the dbh is next created.

See the DBD::mysql documentation to learn more about this attribute. 🫢


πŸŽ€ mysql_socket [STRING] πŸŽ€

Get or set the mysql_socket database handle attribute. If a dbh exists it's set directly on it; otherwise it's applied whenever the dbh is created. Simple as.

If no value for this attribute is defined (the default), it won't be set at dbh-creation time, deferring instead to whatever default value DBD::mysql chooses.

Returns the value of this attribute in the dbh, if one exists, or the value that will be set when the dbh is next created.

See the DBD::mysql documentation to learn more about this attribute. πŸ’…


πŸ”₯ mysql_ssl [BOOL] πŸ”₯

Get or set the mysql_ssl database handle attribute. Set directly on the dbh if one exists, otherwise set when the dbh is created. Locked in either way.

No value defined (the default)? Then it isn't set when the dbh is created, and we defer to whatever default DBD::mysql chooses. Their house, their rules.

Returns the value of this attribute in the dbh, if one exists, or the value that will be set when the dbh is next created.

See the DBD::mysql documentation to learn more about this attribute. 🌈


πŸ’œ mysql_ssl_ca_file [STRING] πŸ’œ

Get or set the mysql_ssl_ca_file database handle attribute. If a dbh exists it's set directly on it; if not, it gets set when the dbh is created.

If no value for this attribute is defined (the default), it will not be set when the dbh is created β€” we defer to whatever default value DBD::mysql picks instead. ✨

Returns the value of this attribute in the dbh, if one exists, or the value that will be set when the dbh is next created.

See the DBD::mysql documentation to learn more about this attribute. 🌸


⭐ mysql_ssl_ca_path [STRING] ⭐

Get or set the mysql_ssl_ca_path database handle attribute. Existing dbh β†’ set straight on it. Otherwise β†’ set when the dbh is created. Both paths lead to it being set, iykyk.

If there's no value defined for this attribute (the default), it won't be set when the dbh is created, and whatever default value DBD::mysql chooses takes over. Deferring, respectfully.

Returns the value of this attribute in the dbh, if one exists, or the value that will be set when the dbh is next created.

See the DBD::mysql documentation to learn more about this attribute. πŸ’–


🧚 mysql_ssl_cipher [STRING] 🧚

Get or set the mysql_ssl_cipher database handle attribute. It's set directly on the dbh if one exists, and set when the dbh is created if one doesn't. Covered.

No value for this attribute defined (which is the default)? Then it will not be set when the dbh is created, deferring instead to whatever default value DBD::mysql chooses.

Returns the value of this attribute in the dbh, if one exists, or the value that will be set when the dbh is next created.

See the DBD::mysql documentation to learn more about this attribute. πŸ¦‹


πŸ“ mysql_ssl_client_cert [STRING] πŸ“

Get or set the mysql_ssl_client_cert database handle attribute. Set directly on the dbh when one exists, otherwise set at dbh creation time. No notes.

If no value is defined for this attribute (the default), it won't be set when the dbh is created, and we defer to whatever default value DBD::mysql chooses.

Returns the value of this attribute in the dbh, if one exists, or the value that will be set when the dbh is next created.

See the DBD::mysql documentation to learn more about this attribute. πŸ’œ


🌈 mysql_ssl_client_key [STRING] 🌈

Get or set the mysql_ssl_client_key database handle attribute. If a dbh exists, it's set directly on it; otherwise it'll be set when the dbh is created. Flexible like that.

If no value for this attribute is defined (the default), it will not be set when the dbh is created β€” instead we defer to whatever default value DBD::mysql chooses.

Returns the value of this attribute in the dbh, if one exists, or the value that will be set when the dbh is next created.

See the DBD::mysql documentation to learn more about this attribute. πŸŽ€


πŸ‘‘ mysql_use_result [BOOL] πŸ‘‘

Get or set the mysql_use_result database handle attribute. Set directly on the dbh if there is one; otherwise it's set when the dbh is created. Both routes, same destination.

If no value is defined for this attribute (the default), it won't be set when the dbh is created, deferring instead to whatever default value DBD::mysql chooses.

Returns the value of this attribute in the dbh, if one exists, or the value that will be set when the dbh is next created.

See the DBD::mysql documentation to learn more about this attribute. ✨


🌸 PostgreSQL 🌸

These attributes should only be used with registry entries where the driver is "pg". Like, only. Don't be out here using them anywhere else. πŸ™ˆ

⭐ european_dates [BOOL] ⭐

Get or set the boolean value that determines whether or not dates are assumed to be in european dd/mm/yyyy format. The default is to assume US mm/dd/yyyy format β€” because that's the default for PostgreSQL, bestie. πŸ‡ΊπŸ‡Έ

This value gets passed to DateTime::Format::Pg as the value of the "european" parameter in the call to the constructor new(). That DateTime::Format::Pg object is what Rose::DB::Pg uses to parse and format date-related column values in methods like parse_date, format_date, etc. Chain of custody: immaculate.

πŸ¦‹ pg_enable_utf8 [BOOL] πŸ¦‹

Get or set the pg_enable_utf8 database handle attribute. Existing dbh? It goes directly on it. No dbh? It gets set when the dbh is created. Either way, it lands.

If no value for this attribute is defined (the default), it will not be set when the dbh is created, deferring instead to whatever default value DBD::Pg chooses.

Returns the value of this attribute in the dbh, if one exists, or the value that will be set when the dbh is next created.

See the DBD::Pg documentation to learn more about this attribute. πŸ’–

πŸ”₯ sslmode [MODE] πŸ”₯

Get or set the SSL mode of the connection. The valid values for MODE are:

  • "disable"
  • "allow"
  • "prefer"
  • "require"

See the DBD::Pg documentation to learn more about this attribute. πŸ”’


πŸŽ€ SQLite πŸŽ€

These attributes should only be used with registry entries where the driver is "sqlite". Yeah, just "sqlite". Periodt. πŸ’…

πŸ’œ auto_create [BOOL] πŸ’œ

Get or set a boolean value indicating whether or not a new SQLite database should be created if it doesn't already exist. It defaults to true. ✨

If it's false, and the specified database doesn't exist, then πŸ’€ a fatal error will occur when an attempt is made to connect to the database. Not a warning, not a lil oopsie β€” fatal. So set it knowing that, bestie. 😭


πŸ’Œ AUTHOR πŸ’Œ

John C. Siracusa (siracusa@gmail.com)

πŸ“œ LICENSE πŸ“œ

Copyright (c) 2010 by John C. Siracusa. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.


And that's a wrap on the whole page, bestie!! 🫢 This was rendered from perl v5.40.1, dated 2026-07-31, for the Rose::...::Entry(3pm) manual β€” go forth and query slayfully. πŸŒˆπŸ’…πŸ‘‘

πŸ“¦ where this page comes from