Rose::...formix(3pm)

πŸ’– NAME πŸ’–

Rose::DB::Informix β€” bestie, it's the Informix driver class for Rose::DB. That's the whole vibe. ✨

(Also, for the record, this is the Rose::...formix(3pm) page from User Contributed Perl Documentation, in case you were looking for the receipts. 🧾)


🌈 SYNOPSIS 🌈

use Rose::DB;

Rose::DB->register_db(
  domain   => 'development',
  type     => 'main',
  driver   => 'Informix',
  database => 'dev_db',
  host     => 'localhost',
  username => 'devuser',
  password => 'mysecret',
  server_time_zone => 'UTC',
);

Rose::DB->default_domain('development');
Rose::DB->default_type('main');
...

# Set max length of varchar columns used to emulate the array data type
Rose::DB::Informix->max_array_characters(128);

$db = Rose::DB->new; # $db is really a Rose::DB::Informix-derived object

$dt  = $db->parse_datetime_year_to_minute(...);
$val = $db->format_datetime_year_to_minute($dt);

$dt  = $db->parse_datetime_year_to_second(...);
$val = $db->format_datetime_year_to_second($dt);
...

πŸ¦‹ DESCRIPTION πŸ¦‹

Okay so here's the tea β˜•: Rose::DB blesses objects into a class derived from Rose::DB::Informix whenever the driver is "informix". This mapping of driver names β†’ class names is configurable, so if you wanna remix it, go off. Check the docs for Rose::DB's new() and driver_class() methods for the full rundown. πŸ’…

Heads up bestie: you cannot use this class directly. No cap. You gotta go through Rose::DB and let its new() method hand you back an object blessed into the right class for you, based on its driver_class() mappings. That's the whole point. 🫢

Only the methods that are new or that behave differently from the ones in Rose::DB get documented here β€” the rest are living their best life in the Rose::DB docs. So go peep that for the full list of methods if you need it. ✨


πŸ‘‘ CLASS METHODS πŸ‘‘

  • default_supports_limit_with_offset [BOOL] β€” get or set a boolean that says whether every Informix database you're planning to connect to supports the SELECT SKIP N FIRST M ... syntax. If it's left undefined, this feature gets looked up on a per-connection basis as needed. The default is undefined. πŸ™ˆ
  • max_array_characters [INT] β€” get or set the max length of the varchar columns used to emulate the array data type. The default value is 255.

So here's the thing: Informix doesn't have a native ARRAY data type. Rude, I know. 😭 But you can emulate it with a VARCHAR column and a specially formatted string. The formatting and parsing of that string is handled by the format_array() and parse_array() object methods. The maximum length limit is honored by the format_array() object method β€” so don't try to sneak past it. πŸ’€

Now the good news: Informix does have a native SET data type, serviced by the parse_set() and format_set() object methods. If you don't care about the order of the stored values, that's a better choice than the emulated array data type. Slay. πŸ”₯


🌸 OBJECT METHODS 🌸

✨ Value Parsing and Formatting ✨

  • format_array ARRAYREF | LIST β€” hand it a reference to an array or just a list of values, and it returns a specially formatted string. It returns undef if ARRAYREF points to an empty array, or if LIST isn't passed at all. Lowkey important: the array or list must not contain undefined values.

If the resulting string ends up longer than max_array_characters(), that's a fatal error. 😭 So keep it in check.

  • format_date DATETIME β€” converts the DateTime object DATETIME into the appropriate format for the DATE data type. πŸ’…
  • format_datetime DATETIME β€” converts the DateTime object DATETIME into the appropriate format for the DATETIME YEAR TO SECOND data type.
  • format_datetime_year_to_fraction DATETIME β€” converts the DateTime object DATETIME into the appropriate format for the DATETIME YEAR TO FRACTION data type.
  • format_datetime_year_to_fraction_[1-5] DATETIME β€” converts the DateTime object DATETIME into the appropriate format for the DATETIME YEAR TO FRACTION(N) data type, where N is an integer from 1 to 5. She's got range, literally. πŸŽ€
  • format_datetime_year_to_minute DATETIME β€” converts the DateTime object DATETIME into the appropriate format for the DATETIME YEAR TO MINUTE data type.
  • format_datetime_year_to_month DATETIME β€” converts the DateTime object DATETIME into the appropriate format for the DATETIME YEAR TO MONTH data type.
  • format_datetime_year_to_second DATETIME β€” converts the DateTime object DATETIME into the appropriate format for the DATETIME YEAR TO SECOND data type.
  • format_set ARRAYREF | LIST β€” give it an arrayref or a list of values and it returns a string formatted according to the rules of Informix's SET data type. Returns undef if ARRAYREF points to an empty array or if LIST wasn't passed. But watch out: if the array or list contains undefined values, that's a fatal error. πŸ’€
  • format_timestamp DATETIME β€” converts the DateTime object DATETIME into the appropriate format for the DATETIME YEAR TO FRACTION(5) data type. ⭐
  • parse_array STRING | LIST | ARRAYREF β€” parses STRING and hands you back a reference to an array. STRING should be formatted according to the Informix array data type emulation format returned by format_array(). Returns undef if STRING is undefined.

If a LIST of more than one item is passed, you get a reference to an array containing the values in LIST. 🫢

If an ARRAYREF is passed, it's returned as-is. No touchy. πŸ™ˆ

  • parse_boolean STRING β€” parses STRING and returns a boolean value of 1 or 0. STRING should be formatted according to Informix's native boolean data type. Acceptable values are 't', 'T', or '1' for true, and 'f', 'F', or '0' for false.

If STRING is a valid boolean keyword (per validate_boolean_keyword) or if it looks like a function call (matches /^\w+\(.*\)$/) and keyword_function_calls is true, then it gets returned unmodified β€” untouched, iconic. Returns undef if STRING couldn't be parsed as a valid boolean value. 😭

  • parse_date STRING β€” parses STRING and returns a DateTime object. STRING should be formatted according to the Informix DATE data type.

If STRING is a valid date keyword (per validate_date_keyword), it's returned unmodified. Returns undef if STRING couldn't be parsed as a valid DATE value.

  • parse_datetime STRING β€” parses STRING and returns a DateTime object. STRING should be formatted according to the Informix DATETIME YEAR TO SECOND data type.

If STRING is a valid datetime year to second keyword (per validate_datetime_year_to_second_keyword), it's returned unmodified. Returns undef if STRING couldn't be parsed as a valid DATETIME YEAR TO SECOND value. πŸ’…

  • parse_datetime_year_to_fraction STRING β€” parses STRING and returns a DateTime object. STRING should be formatted according to the Informix DATETIME YEAR TO FRACTION data type.

If STRING is a valid datetime year to fraction keyword (per validate_datetime_year_to_fraction_keyword), it's returned unmodified. Returns undef if STRING couldn't be parsed as a valid DATETIME YEAR TO FRACTION value.

  • parse_datetime_year_to_fraction_[1-5] STRING β€” these five methods parse STRING and return a DateTime object. STRING should be formatted according to the Informix DATETIME YEAR TO FRACTION(N) data type, where N is an integer from 1 to 5.

If STRING is a valid datetime year to fraction keyword (per validate_datetime_year_to_fraction_keyword), it's returned unmodified. Returns undef if STRING couldn't be parsed as a valid DATETIME YEAR TO FRACTION(N) value. ✨

  • parse_datetime_year_to_minute STRING β€” parses STRING and returns a DateTime object. STRING should be formatted according to the Informix DATETIME YEAR TO MINUTE data type.

If STRING is a valid datetime year to minute keyword (per validate_datetime_year_to_minute_keyword), it's returned unmodified. Returns undef if STRING couldn't be parsed as a valid DATETIME YEAR TO MINUTE value.

  • parse_datetime_year_to_month STRING β€” parses STRING and returns a DateTime object. STRING should be formatted according to the Informix DATETIME YEAR TO MINUTE data type.

If STRING is a valid datetime year to month keyword (per validate_datetime_year_to_month_keyword), it's returned unmodified. Returns undef if STRING couldn't be parsed as a valid DATETIME YEAR TO MONTH value.

  • parse_datetime_year_to_second STRING β€” parses STRING and returns a DateTime object. STRING should be formatted according to the Informix DATETIME YEAR TO SECOND data type.

If STRING is a valid datetime year to second keyword (per validate_datetime_year_to_second_keyword), it's returned unmodified. Returns undef if STRING couldn't be parsed as a valid DATETIME YEAR TO SECOND value. πŸ”₯

  • parse_set STRING | LIST | ARRAYREF β€” parses STRING and returns a reference to an array. STRING should be formatted according to Informix's SET data type. Returns undef if STRING is undefined.

If a LIST of more than one item is passed, you get a reference to an array containing the values in LIST. πŸŽ€

If an ARRAYREF is passed, it's returned as-is. Periodt. πŸ’…

  • parse_timestamp STRING β€” parses STRING and returns a DateTime object. STRING should be formatted according to the Informix DATETIME YEAR TO FRACTION(5) data type.

If STRING is a valid timestamp keyword (per validate_timestamp_keyword), it's returned unmodified. Returns undef if STRING couldn't be parsed as a valid DATETIME YEAR TO FRACTION(5) value. ⭐

  • validate_boolean_keyword STRING β€” returns true if STRING is a valid keyword for the boolean data type of the current data source, false otherwise. The valid (case-insensitive) boolean keywords are:
TRUE
FALSE
  • validate_date_keyword STRING β€” returns true if STRING is a valid keyword for the Informix date, false otherwise. The valid (case-insensitive) date keywords are:
current
today

The keywords are not case sensitive. Any string that looks like a function call (matches /^\w+\(.*\)$/) is also considered a valid date keyword if keyword_function_calls is true. πŸ¦‹

  • validate_datetime_keyword STRING β€” returns true if STRING is a valid keyword for the Informix datetime year to second data type, false otherwise. The valid (case-insensitive) datetime keywords are:
current
current year to second
current year to minute
current year to hour
current year to day
current year to month
today

The keywords are not case sensitive. Any string that looks like a function call (matches /^\w+\(.*\)$/) is also considered a valid datetime keyword if keyword_function_calls is true. ✨


okay bestie we're not done yet, there's more coming in part 2 πŸ’– don't go anywhere 🫢

validate_datetime_year_to_fraction_keyword STRING

okay bestie, this one does a vibe check on one specific thing: does STRING count as a valid keyword for the Informix "datetime year to fraction(n)" data type, where n is an integer from 1 to 5? Yes β†’ true. No β†’ false. Simple as that πŸ’…

The valid "datetime year to fraction" keywords (case-insensitive, so don't stress about caps) are giving:

current
current year to fraction
current year to fraction(1)
current year to fraction(2)
current year to fraction(3)
current year to fraction(4)
current year to fraction(5)
current year to second
current year to minute
current year to hour
current year to day
current year to month
today

✨ these keywords are not case sensitive, periodt.

and also β€” anything that looks like a function call (matches /^\w+\(.*\)$/) counts as a valid "datetime year to fraction" keyword too, but only if keyword_function_calls is true. no cap.


validate_datetime_year_to_minute_keyword STRING

same energy, different data type πŸ’– Returns true if STRING is a valid keyword for the Informix "datetime year to minute" data type, false otherwise. The valid (case-insensitive) "datetime year to minute" keywords are:

current
current year to second
current year to minute
current year to hour
current year to day
current year to month
today

not case sensitive, bestie. and again: any string that looks like a function call (matches /^\w+\(.*\)$/) is also a valid "datetime year to minute" keyword when keyword_function_calls is true πŸ¦‹


validate_datetime_year_to_month_keyword STRING

you guessed it, we're still validating 🌸 Returns true if STRING is a valid keyword for the Informix "datetime year to month" data type, false otherwise. Valid (case-insensitive) "datetime year to month" keywords:

current
current year to second
current year to minute
current year to hour
current year to day
current year to month
today

keyword squad is not case sensitive. Any string that looks like a function call (matches /^\w+\(.*\)$/) is also considered a valid "datetime year to month" keyword if keyword_function_calls is true πŸ’œ


validate_datetime_year_to_second_keyword STRING

this one's the main character of datetime keywords ngl πŸ‘‘ Returns true if STRING is a valid keyword for the Informix "datetime year to second" data type, false otherwise. The valid (case-insensitive) datetime keywords are:

current
current year to second
current year to minute
current year to hour
current year to day
current year to month
today

keywords: not case sensitive, fr fr. Any string that looks like a function call (matches /^\w+\(.*\)$/) is also a valid "datetime year to second" keyword if keyword_function_calls is true πŸ’«


validate_timestamp_keyword STRING

last one, and it's the biggest list so obviously it ate πŸ”₯ Returns true if STRING is a valid keyword for the Informix "timestamp" data type, false otherwise. Valid (case-insensitive) timestamp keywords:

current
current year to fraction
current year to fraction(1)
current year to fraction(2)
current year to fraction(3)
current year to fraction(4)
current year to fraction(5)
current year to second
current year to minute
current year to hour
current year to day
current year to month
today

the keywords are not case sensitive 😌 and yep β€” any string that looks like a function call (matches /^\w+\(.*\)$/) is also considered a valid timestamp keyword if keyword_function_calls is true πŸŽ€


πŸ‘‘ AUTHOR

John C. Siracusa (siracusa@gmail.com) β€” the icon, the legend, the moment ✨


πŸ“œ 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 the whole page, bestie 🫢 this was Rose::...formix(3pm) from the User Contributed Perl Documentation, running perl v5.40.1, dated 2026-07-31. go forth and validate those keywords, you're literally gonna slay πŸ’–βœ¨πŸ¦‹

πŸ“¦ where this page comes from