[PECL-CVS] [pecl-database-pdo_ibm] pdo-class-8.5: Bare minimum class stub for PDO in PHP 8.5
[email protected] (Calvin Buckley)
| Newsgroups | php.pecl.cvs |
|---|---|
| Message-ID | <[email protected]> |
Author: Calvin Buckley (NattyNarwhal)
Date: 2025-09-10T14:29:36-03:00
Commit: https://github.com/php/pecl-database-pdo_ibm/commit/9b038cb7fbfc7cb3771c7165056bd75f24833876
Raw diff: https://github.com/php/pecl-database-pdo_ibm/commit/9b038cb7fbfc7cb3771c7165056bd75f24833876.diff
Bare minimum class stub for PDO in PHP 8.5
This should probably be extended to PHP 8.4 as well.
Untested on i.
Changed paths:
A pdo_ibm.stub.php
A pdo_ibm_arginfo.h
M pdo_ibm.c
Diff:
diff --git a/pdo_ibm.c b/pdo_ibm.c
index a4236d7..8670de3 100644
--- a/pdo_ibm.c
+++ b/pdo_ibm.c
@@ -30,6 +30,10 @@
#include "php_pdo_ibm.h"
#include "php_pdo_ibm_int.h"
+#if PHP_MAJOR_VERSION >= 8
+#include "pdo_ibm_arginfo.h"
+#endif
+
/* If you declare any globals in php_pdo_ibm.h uncomment this:
*/
#ifdef PASE
@@ -40,6 +44,7 @@ ZEND_DECLARE_MODULE_GLOBALS(pdo_ibm)
static int le_pdo_ibm;
extern pdo_driver_t pdo_ibm_driver; /* the registration table */
+static zend_class_entry *pdo_ibm_ce;
#ifdef PASE /* PASE i5/OS start-up */
#include <as400_protos.h>
@@ -105,6 +110,19 @@ static void php_pdo_ibm_init_globals(zend_pdo_ibm_globals *pdo_ibm_globals)
/* }}} */
#endif /* PASE */
+/* PDO_IBM used both SQL_ and I5_ as prefixes for constants */
+#if PHP_VERSION_ID >= 80500
+#define REGISTER_PDO_IBM_CLASS_CONST_LONG_DEPRECATED_ALIAS_85(base_name, value) \
+ REGISTER_PDO_CLASS_CONST_LONG_DEPRECATED_ALIAS_85(base_name, "SQL_", "Pdo\\Ibm::", value)
+#define REGISTER_PDO_IBM_I5_CLASS_CONST_LONG_DEPRECATED_ALIAS_85(base_name, value) \
+ REGISTER_PDO_CLASS_CONST_LONG_DEPRECATED_ALIAS_85(base_name, "I5_", "Pdo\\Ibm::", value)
+#else
+#define REGISTER_PDO_IBM_CLASS_CONST_LONG_DEPRECATED_ALIAS_85(base_name, value) \
+ REGISTER_PDO_CLASS_CONST_LONG("SQL_" base_name, value)
+#define REGISTER_PDO_IBM_I5_CLASS_CONST_LONG_DEPRECATED_ALIAS_85(base_name, value) \
+ REGISTER_PDO_CLASS_CONST_LONG("I5_" base_name, value)
+#endif
+
/* {{{ PHP_MINIT_FUNCTION
*/
PHP_MINIT_FUNCTION(pdo_ibm)
@@ -116,32 +134,39 @@ PHP_MINIT_FUNCTION(pdo_ibm)
#endif
#ifndef PASE /* i5/OS no support trusted */
- REGISTER_PDO_CLASS_CONST_LONG("SQL_ATTR_USE_TRUSTED_CONTEXT", (long) PDO_SQL_ATTR_USE_TRUSTED_CONTEXT);
- REGISTER_PDO_CLASS_CONST_LONG("SQL_ATTR_TRUSTED_CONTEXT_USERID", (long) PDO_SQL_ATTR_TRUSTED_CONTEXT_USERID);
- REGISTER_PDO_CLASS_CONST_LONG("SQL_ATTR_TRUSTED_CONTEXT_PASSWORD", (long) PDO_SQL_ATTR_TRUSTED_CONTEXT_PASSWORD);
+ REGISTER_PDO_IBM_CLASS_CONST_LONG_DEPRECATED_ALIAS_85("ATTR_USE_TRUSTED_CONTEXT", (long) PDO_SQL_ATTR_USE_TRUSTED_CONTEXT);
+ REGISTER_PDO_IBM_CLASS_CONST_LONG_DEPRECATED_ALIAS_85("ATTR_TRUSTED_CONTEXT_USERID", (long) PDO_SQL_ATTR_TRUSTED_CONTEXT_USERID);
+ REGISTER_PDO_IBM_CLASS_CONST_LONG_DEPRECATED_ALIAS_85("ATTR_TRUSTED_CONTEXT_PASSWORD", (long) PDO_SQL_ATTR_TRUSTED_CONTEXT_PASSWORD);
#else /* PASE i5/OS introduced (1.3.4) */
- REGISTER_PDO_CLASS_CONST_LONG("I5_ATTR_DBC_SYS_NAMING", (long)PDO_I5_ATTR_DBC_SYS_NAMING);
+ REGISTER_PDO_IBM_I5_CLASS_CONST_LONG_DEPRECATED_ALIAS_85("ATTR_DBC_SYS_NAMING", (long)PDO_I5_ATTR_DBC_SYS_NAMING);
- REGISTER_PDO_CLASS_CONST_LONG("I5_ATTR_COMMIT", (long)PDO_I5_ATTR_COMMIT);
- REGISTER_PDO_CLASS_CONST_LONG("I5_TXN_NO_COMMIT", (long)PDO_I5_TXN_NO_COMMIT);
- REGISTER_PDO_CLASS_CONST_LONG("I5_TXN_READ_UNCOMMITTED", (long)PDO_I5_TXN_READ_UNCOMMITTED);
- REGISTER_PDO_CLASS_CONST_LONG("I5_TXN_READ_COMMITTED", (long)PDO_I5_TXN_READ_COMMITTED);
- REGISTER_PDO_CLASS_CONST_LONG("I5_TXN_REPEATABLE_READ", (long)PDO_I5_TXN_REPEATABLE_READ);
- REGISTER_PDO_CLASS_CONST_LONG("I5_TXN_SERIALIZABLE", (long)PDO_I5_TXN_SERIALIZABLE);
-
- REGISTER_PDO_CLASS_CONST_LONG("I5_ATTR_JOB_SORT", (long)PDO_I5_ATTR_JOB_SORT);
- REGISTER_PDO_CLASS_CONST_LONG("I5_ATTR_DBC_LIBL", (long)PDO_I5_ATTR_DBC_LIBL);
- REGISTER_PDO_CLASS_CONST_LONG("I5_ATTR_DBC_CURLIB", (long)PDO_I5_ATTR_DBC_CURLIB);
+ REGISTER_PDO_IBM_I5_CLASS_CONST_LONG_DEPRECATED_ALIAS_85("ATTR_COMMIT", (long)PDO_I5_ATTR_COMMIT);
+ REGISTER_PDO_IBM_I5_CLASS_CONST_LONG_DEPRECATED_ALIAS_85("TXN_NO_COMMIT", (long)PDO_I5_TXN_NO_COMMIT);
+ REGISTER_PDO_IBM_I5_CLASS_CONST_LONG_DEPRECATED_ALIAS_85("TXN_READ_UNCOMMITTED", (long)PDO_I5_TXN_READ_UNCOMMITTED);
+ REGISTER_PDO_IBM_I5_CLASS_CONST_LONG_DEPRECATED_ALIAS_85("TXN_READ_COMMITTED", (long)PDO_I5_TXN_READ_COMMITTED);
+ REGISTER_PDO_IBM_I5_CLASS_CONST_LONG_DEPRECATED_ALIAS_85("TXN_REPEATABLE_READ", (long)PDO_I5_TXN_REPEATABLE_READ);
+ REGISTER_PDO_IBM_I5_CLASS_CONST_LONG_DEPRECATED_ALIAS_85("TXN_SERIALIZABLE", (long)PDO_I5_TXN_SERIALIZABLE);
+
+ REGISTER_PDO_IBM_I5_CLASS_CONST_LONG_DEPRECATED_ALIAS_85("ATTR_JOB_SORT", (long)PDO_I5_ATTR_JOB_SORT);
+ REGISTER_PDO_IBM_I5_CLASS_CONST_LONG_DEPRECATED_ALIAS_85("ATTR_DBC_LIBL", (long)PDO_I5_ATTR_DBC_LIBL);
+ REGISTER_PDO_IBM_I5_CLASS_CONST_LONG_DEPRECATED_ALIAS_85("ATTR_DBC_CURLIB", (long)PDO_I5_ATTR_DBC_CURLIB);
#endif /* PASE */
/* Client information variables */
- REGISTER_PDO_CLASS_CONST_LONG("SQL_ATTR_INFO_USERID", (long) PDO_SQL_ATTR_INFO_USERID);
- REGISTER_PDO_CLASS_CONST_LONG("SQL_ATTR_INFO_ACCTSTR", (long) PDO_SQL_ATTR_INFO_ACCTSTR);
- REGISTER_PDO_CLASS_CONST_LONG("SQL_ATTR_INFO_APPLNAME", (long) PDO_SQL_ATTR_INFO_APPLNAME);
- REGISTER_PDO_CLASS_CONST_LONG("SQL_ATTR_INFO_WRKSTNNAME", (long) PDO_SQL_ATTR_INFO_WRKSTNNAME);
-
+ REGISTER_PDO_IBM_CLASS_CONST_LONG_DEPRECATED_ALIAS_85("ATTR_INFO_USERID", (long) PDO_SQL_ATTR_INFO_USERID);
+ REGISTER_PDO_IBM_CLASS_CONST_LONG_DEPRECATED_ALIAS_85("ATTR_INFO_ACCTSTR", (long) PDO_SQL_ATTR_INFO_ACCTSTR);
+ REGISTER_PDO_IBM_CLASS_CONST_LONG_DEPRECATED_ALIAS_85("ATTR_INFO_APPLNAME", (long) PDO_SQL_ATTR_INFO_APPLNAME);
+ REGISTER_PDO_IBM_CLASS_CONST_LONG_DEPRECATED_ALIAS_85("ATTR_INFO_WRKSTNNAME", (long) PDO_SQL_ATTR_INFO_WRKSTNNAME);
+
+#if PHP_VERSION_ID >= 80500
+ pdo_ibm_ce = register_class_Pdo_Ibm(pdo_dbh_ce);
+ pdo_ibm_ce->create_object = pdo_dbh_new;
+
+ return php_pdo_register_driver_specific_ce(&pdo_ibm_driver, pdo_ibm_ce);
+#else
php_pdo_register_driver(&pdo_ibm_driver);
- return TRUE;
+ return TRUE;
+#endif
}
/* }}} */
diff --git a/pdo_ibm.stub.php b/pdo_ibm.stub.php
new file mode 100644
index 0000000..95003b3
--- /dev/null
+++ b/pdo_ibm.stub.php
@@ -0,0 +1,66 @@
+<?php
+
+/**
+ * @generate-class-entries
+ */
+
+namespace Pdo {
+ /**
+ * @strict-properties
+ * @not-serializable
+ */
+ class Ibm extends \PDO
+ {
+ /** @cvalue PDO_SQL_ATTR_INFO_USERID */
+ public const int ATTR_INFO_USERID = UNKNOWN;
+
+ /** @cvalue PDO_SQL_ATTR_INFO_ACCTSTR */
+ public const int ATTR_INFO_ACCTSTR = UNKNOWN;
+
+ /** @cvalue PDO_SQL_ATTR_INFO_APPLNAME */
+ public const int ATTR_INFO_APPLNAME = UNKNOWN;
+
+ /** @cvalue PDO_SQL_ATTR_INFO_WRKSTNNAME */
+ public const int ATTR_INFO_WRKSTNNAME = UNKNOWN;
+
+#ifndef PASE
+ /** @cvalue PDO_SQL_ATTR_USE_TRUSTED_CONTEXT */
+ public const int ATTR_USE_TRUSTED_CONTEXT = UNKNOWN;
+
+ /** @cvalue PDO_SQL_ATTR_TRUSTED_CONTEXT_USERID */
+ public const int ATTR_TRUSTED_CONTEXT_USERID = UNKNOWN;
+
+ /** @cvalue PDO_SQL_ATTR_TRUSTED_CONTEXT_PASSWORD */
+ public const int ATTR_TRUSTED_CONTEXT_PASSWORD = UNKNOWN;
+#endif
+#ifdef PASE
+ /** @cvalue PDO_I5_ATTR_COMMIT */
+ public const int ATTR_COMMIT = UNKNOWN;
+
+ /** @cvalue PDO_I5_TXN_NO_COMMIT */
+ public const int TXN_NO_COMMIT = UNKNOWN;
+
+ /** @cvalue PDO_I5_TXN_READ_UNCOMMITTED */
+ public const int TXN_READ_UNCOMMITTED = UNKNOWN;
+
+ /** @cvalue PDO_I5_TXN_READ_COMMITTED */
+ public const int TXN_READ_COMMITTED = UNKNOWN;
+
+ /** @cvalue PDO_I5_TXN_REPEATABLE_READ */
+ public const int TXN_REPEATABLE_READ = UNKNOWN;
+
+ /** @cvalue PDO_I5_TXN_SERIALIZABLE */
+ public const int TXN_SERIALIZABLE = UNKNOWN;
+
+ /** @cvalue PDO_I5_ATTR_JOB_SORT */
+ public const int ATTR_JOB_SORT = UNKNOWN;
+
+ /** @cvalue PDO_I5_ATTR_DBC_LIBL */
+ public const int ATTR_DBC_LIBL = UNKNOWN;
+
+ /** @cvalue PDO_I5_ATTR_DBC_CURLIB */
+ public const int ATTR_DBC_CURLIB = UNKNOWN;
+#endif
+ }
+}
+
diff --git a/pdo_ibm_arginfo.h b/pdo_ibm_arginfo.h
new file mode 100644
index 0000000..379e1d8
--- /dev/null
+++ b/pdo_ibm_arginfo.h
@@ -0,0 +1,112 @@
+/* This is a generated file, edit the .stub.php file instead.
+ * Stub hash: d973ffba51a2d0ff794d8b86edfdf13aafddb615 */
+
+static zend_class_entry *register_class_Pdo_Ibm(zend_class_entry *class_entry_PDO)
+{
+ zend_class_entry ce, *class_entry;
+
+ INIT_NS_CLASS_ENTRY(ce, "Pdo", "Ibm", NULL);
+ class_entry = zend_register_internal_class_with_flags(&ce, class_entry_PDO, ZEND_ACC_NO_DYNAMIC_PROPERTIES|ZEND_ACC_NOT_SERIALIZABLE);
+
+ zval const_ATTR_INFO_USERID_value;
+ ZVAL_LONG(&const_ATTR_INFO_USERID_value, PDO_SQL_ATTR_INFO_USERID);
+ zend_string *const_ATTR_INFO_USERID_name = zend_string_init_interned("ATTR_INFO_USERID", sizeof("ATTR_INFO_USERID") - 1, 1);
+ zend_declare_typed_class_constant(class_entry, const_ATTR_INFO_USERID_name, &const_ATTR_INFO_USERID_value, ZEND_ACC_PUBLIC, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_LONG));
+ zend_string_release(const_ATTR_INFO_USERID_name);
+
+ zval const_ATTR_INFO_ACCTSTR_value;
+ ZVAL_LONG(&const_ATTR_INFO_ACCTSTR_value, PDO_SQL_ATTR_INFO_ACCTSTR);
+ zend_string *const_ATTR_INFO_ACCTSTR_name = zend_string_init_interned("ATTR_INFO_ACCTSTR", sizeof("ATTR_INFO_ACCTSTR") - 1, 1);
+ zend_declare_typed_class_constant(class_entry, const_ATTR_INFO_ACCTSTR_name, &const_ATTR_INFO_ACCTSTR_value, ZEND_ACC_PUBLIC, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_LONG));
+ zend_string_release(const_ATTR_INFO_ACCTSTR_name);
+
+ zval const_ATTR_INFO_APPLNAME_value;
+ ZVAL_LONG(&const_ATTR_INFO_APPLNAME_value, PDO_SQL_ATTR_INFO_APPLNAME);
+ zend_string *const_ATTR_INFO_APPLNAME_name = zend_string_init_interned("ATTR_INFO_APPLNAME", sizeof("ATTR_INFO_APPLNAME") - 1, 1);
+ zend_declare_typed_class_constant(class_entry, const_ATTR_INFO_APPLNAME_name, &const_ATTR_INFO_APPLNAME_value, ZEND_ACC_PUBLIC, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_LONG));
+ zend_string_release(const_ATTR_INFO_APPLNAME_name);
+
+ zval const_ATTR_INFO_WRKSTNNAME_value;
+ ZVAL_LONG(&const_ATTR_INFO_WRKSTNNAME_value, PDO_SQL_ATTR_INFO_WRKSTNNAME);
+ zend_string *const_ATTR_INFO_WRKSTNNAME_name = zend_string_init_interned("ATTR_INFO_WRKSTNNAME", sizeof("ATTR_INFO_WRKSTNNAME") - 1, 1);
+ zend_declare_typed_class_constant(class_entry, const_ATTR_INFO_WRKSTNNAME_name, &const_ATTR_INFO_WRKSTNNAME_value, ZEND_ACC_PUBLIC, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_LONG));
+ zend_string_release(const_ATTR_INFO_WRKSTNNAME_name);
+#if !defined(PASE)
+
+ zval const_ATTR_USE_TRUSTED_CONTEXT_value;
+ ZVAL_LONG(&const_ATTR_USE_TRUSTED_CONTEXT_value, PDO_SQL_ATTR_USE_TRUSTED_CONTEXT);
+ zend_string *const_ATTR_USE_TRUSTED_CONTEXT_name = zend_string_init_interned("ATTR_USE_TRUSTED_CONTEXT", sizeof("ATTR_USE_TRUSTED_CONTEXT") - 1, 1);
+ zend_declare_typed_class_constant(class_entry, const_ATTR_USE_TRUSTED_CONTEXT_name, &const_ATTR_USE_TRUSTED_CONTEXT_value, ZEND_ACC_PUBLIC, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_LONG));
+ zend_string_release(const_ATTR_USE_TRUSTED_CONTEXT_name);
+
+ zval const_ATTR_TRUSTED_CONTEXT_USERID_value;
+ ZVAL_LONG(&const_ATTR_TRUSTED_CONTEXT_USERID_value, PDO_SQL_ATTR_TRUSTED_CONTEXT_USERID);
+ zend_string *const_ATTR_TRUSTED_CONTEXT_USERID_name = zend_string_init_interned("ATTR_TRUSTED_CONTEXT_USERID", sizeof("ATTR_TRUSTED_CONTEXT_USERID") - 1, 1);
+ zend_declare_typed_class_constant(class_entry, const_ATTR_TRUSTED_CONTEXT_USERID_name, &const_ATTR_TRUSTED_CONTEXT_USERID_value, ZEND_ACC_PUBLIC, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_LONG));
+ zend_string_release(const_ATTR_TRUSTED_CONTEXT_USERID_name);
+
+ zval const_ATTR_TRUSTED_CONTEXT_PASSWORD_value;
+ ZVAL_LONG(&const_ATTR_TRUSTED_CONTEXT_PASSWORD_value, PDO_SQL_ATTR_TRUSTED_CONTEXT_PASSWORD);
+ zend_string *const_ATTR_TRUSTED_CONTEXT_PASSWORD_name = zend_string_init_interned("ATTR_TRUSTED_CONTEXT_PASSWORD", sizeof("ATTR_TRUSTED_CONTEXT_PASSWORD") - 1, 1);
+ zend_declare_typed_class_constant(class_entry, const_ATTR_TRUSTED_CONTEXT_PASSWORD_name, &const_ATTR_TRUSTED_CONTEXT_PASSWORD_value, ZEND_ACC_PUBLIC, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_LONG));
+ zend_string_release(const_ATTR_TRUSTED_CONTEXT_PASSWORD_name);
+#endif
+#if defined(PASE)
+
+ zval const_ATTR_COMMIT_value;
+ ZVAL_LONG(&const_ATTR_COMMIT_value, PDO_I5_ATTR_COMMIT);
+ zend_string *const_ATTR_COMMIT_name = zend_string_init_interned("ATTR_COMMIT", sizeof("ATTR_COMMIT") - 1, 1);
+ zend_declare_typed_class_constant(class_entry, const_ATTR_COMMIT_name, &const_ATTR_COMMIT_value, ZEND_ACC_PUBLIC, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_LONG));
+ zend_string_release(const_ATTR_COMMIT_name);
+
+ zval const_TXN_NO_COMMIT_value;
+ ZVAL_LONG(&const_TXN_NO_COMMIT_value, PDO_I5_TXN_NO_COMMIT);
+ zend_string *const_TXN_NO_COMMIT_name = zend_string_init_interned("TXN_NO_COMMIT", sizeof("TXN_NO_COMMIT") - 1, 1);
+ zend_declare_typed_class_constant(class_entry, const_TXN_NO_COMMIT_name, &const_TXN_NO_COMMIT_value, ZEND_ACC_PUBLIC, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_LONG));
+ zend_string_release(const_TXN_NO_COMMIT_name);
+
+ zval const_TXN_READ_UNCOMMITTED_value;
+ ZVAL_LONG(&const_TXN_READ_UNCOMMITTED_value, PDO_I5_TXN_READ_UNCOMMITTED);
+ zend_string *const_TXN_READ_UNCOMMITTED_name = zend_string_init_interned("TXN_READ_UNCOMMITTED", sizeof("TXN_READ_UNCOMMITTED") - 1, 1);
+ zend_declare_typed_class_constant(class_entry, const_TXN_READ_UNCOMMITTED_name, &const_TXN_READ_UNCOMMITTED_value, ZEND_ACC_PUBLIC, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_LONG));
+ zend_string_release(const_TXN_READ_UNCOMMITTED_name);
+
+ zval const_TXN_READ_COMMITTED_value;
+ ZVAL_LONG(&const_TXN_READ_COMMITTED_value, PDO_I5_TXN_READ_COMMITTED);
+ zend_string *const_TXN_READ_COMMITTED_name = zend_string_init_interned("TXN_READ_COMMITTED", sizeof("TXN_READ_COMMITTED") - 1, 1);
+ zend_declare_typed_class_constant(class_entry, const_TXN_READ_COMMITTED_name, &const_TXN_READ_COMMITTED_value, ZEND_ACC_PUBLIC, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_LONG));
+ zend_string_release(const_TXN_READ_COMMITTED_name);
+
+ zval const_TXN_REPEATABLE_READ_value;
+ ZVAL_LONG(&const_TXN_REPEATABLE_READ_value, PDO_I5_TXN_REPEATABLE_READ);
+ zend_string *const_TXN_REPEATABLE_READ_name = zend_string_init_interned("TXN_REPEATABLE_READ", sizeof("TXN_REPEATABLE_READ") - 1, 1);
+ zend_declare_typed_class_constant(class_entry, const_TXN_REPEATABLE_READ_name, &const_TXN_REPEATABLE_READ_value, ZEND_ACC_PUBLIC, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_LONG));
+ zend_string_release(const_TXN_REPEATABLE_READ_name);
+
+ zval const_TXN_SERIALIZABLE_value;
+ ZVAL_LONG(&const_TXN_SERIALIZABLE_value, PDO_I5_TXN_SERIALIZABLE);
+ zend_string *const_TXN_SERIALIZABLE_name = zend_string_init_interned("TXN_SERIALIZABLE", sizeof("TXN_SERIALIZABLE") - 1, 1);
+ zend_declare_typed_class_constant(class_entry, const_TXN_SERIALIZABLE_name, &const_TXN_SERIALIZABLE_value, ZEND_ACC_PUBLIC, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_LONG));
+ zend_string_release(const_TXN_SERIALIZABLE_name);
+
+ zval const_ATTR_JOB_SORT_value;
+ ZVAL_LONG(&const_ATTR_JOB_SORT_value, PDO_I5_ATTR_JOB_SORT);
+ zend_string *const_ATTR_JOB_SORT_name = zend_string_init_interned("ATTR_JOB_SORT", sizeof("ATTR_JOB_SORT") - 1, 1);
+ zend_declare_typed_class_constant(class_entry, const_ATTR_JOB_SORT_name, &const_ATTR_JOB_SORT_value, ZEND_ACC_PUBLIC, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_LONG));
+ zend_string_release(const_ATTR_JOB_SORT_name);
+
+ zval const_ATTR_DBC_LIBL_value;
+ ZVAL_LONG(&const_ATTR_DBC_LIBL_value, PDO_I5_ATTR_DBC_LIBL);
+ zend_string *const_ATTR_DBC_LIBL_name = zend_string_init_interned("ATTR_DBC_LIBL", sizeof("ATTR_DBC_LIBL") - 1, 1);
+ zend_declare_typed_class_constant(class_entry, const_ATTR_DBC_LIBL_name, &const_ATTR_DBC_LIBL_value, ZEND_ACC_PUBLIC, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_LONG));
+ zend_string_release(const_ATTR_DBC_LIBL_name);
+
+ zval const_ATTR_DBC_CURLIB_value;
+ ZVAL_LONG(&const_ATTR_DBC_CURLIB_value, PDO_I5_ATTR_DBC_CURLIB);
+ zend_string *const_ATTR_DBC_CURLIB_name = zend_string_init_interned("ATTR_DBC_CURLIB", sizeof("ATTR_DBC_CURLIB") - 1, 1);
+ zend_declare_typed_class_constant(class_entry, const_ATTR_DBC_CURLIB_name, &const_ATTR_DBC_CURLIB_value, ZEND_ACC_PUBLIC, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_LONG));
+ zend_string_release(const_ATTR_DBC_CURLIB_name);
+#endif
+
+ return class_entry;
+}