Linux evo.fastest-server.com 5.14.0-284.1101.el9.tuxcare.11.els11.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Aug 14 13:30:35 UTC 2026 x86_64
LiteSpeed
Server IP : 103.249.112.113 & Your IP : 216.73.217.135
Domains : 988 Domain
User : tanishks
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
usr /
share /
doc /
firebird /
sql.extensions /
Delete
Unzip
Name
Size
Permission
Date
Action
README.PSQL_stack_trace.txt
1.96
KB
-rw-r--r--
2026-04-17 16:36
README.aggregate_filter.md
941
B
-rw-r--r--
2026-04-17 16:36
README.aggregate_tracking
3.88
KB
-rw-r--r--
2026-04-17 16:36
README.alternate_string_quoting.txt
846
B
-rw-r--r--
2026-04-17 16:36
README.autonomous_transactions.txt
1.31
KB
-rw-r--r--
2026-04-17 16:36
README.blob_append.md
4.99
KB
-rw-r--r--
2026-04-17 16:36
README.builtin_functions.txt
29.49
KB
-rw-r--r--
2026-04-17 16:36
README.case
1.71
KB
-rw-r--r--
2026-04-17 16:36
README.coalesce
1.04
KB
-rw-r--r--
2026-04-17 16:36
README.column_type_psql.txt
871
B
-rw-r--r--
2026-04-17 16:36
README.common_table_expressions
4.78
KB
-rw-r--r--
2026-04-17 16:36
README.context_variables
4.66
KB
-rw-r--r--
2026-04-17 16:36
README.context_variables2
8.47
KB
-rw-r--r--
2026-04-17 16:36
README.cumulative_roles.txt
2.27
KB
-rw-r--r--
2026-04-17 16:36
README.current_time
814
B
-rw-r--r--
2026-04-17 16:36
README.cursor_variables.txt
2.75
KB
-rw-r--r--
2026-04-17 16:36
README.cursors
2.43
KB
-rw-r--r--
2026-04-17 16:36
README.data_type_results_of_aggregations.txt
1.56
KB
-rw-r--r--
2026-04-17 16:36
README.data_types
8.31
KB
-rw-r--r--
2026-04-17 16:36
README.db_triggers.txt
1.8
KB
-rw-r--r--
2026-04-17 16:36
README.ddl.txt
22.52
KB
-rw-r--r--
2026-04-17 16:36
README.ddl_access.txt
1.53
KB
-rw-r--r--
2026-04-17 16:36
README.ddl_triggers.txt
11.67
KB
-rw-r--r--
2026-04-17 16:36
README.default_parameters
1.91
KB
-rw-r--r--
2026-04-17 16:36
README.derived_tables.txt
2.69
KB
-rw-r--r--
2026-04-17 16:36
README.distinct
813
B
-rw-r--r--
2026-04-17 16:36
README.domains_psql.txt
933
B
-rw-r--r--
2026-04-17 16:36
README.exception_handling
2.44
KB
-rw-r--r--
2026-04-17 16:36
README.execute_block
1.45
KB
-rw-r--r--
2026-04-17 16:36
README.execute_statement
4.24
KB
-rw-r--r--
2026-04-17 16:36
README.execute_statement2
9.54
KB
-rw-r--r--
2026-04-17 16:36
README.explicit_locks
5.91
KB
-rw-r--r--
2026-04-17 16:36
README.expression_indices
1.3
KB
-rw-r--r--
2026-04-17 16:36
README.external_connections_pool
4.31
KB
-rw-r--r--
2026-04-17 16:36
README.floating_point_types.md
2.33
KB
-rw-r--r--
2026-04-17 16:36
README.global_temporary_tables
3.43
KB
-rw-r--r--
2026-04-17 16:36
README.hex_literals.txt
1.13
KB
-rw-r--r--
2026-04-17 16:36
README.identity_columns.txt
3.24
KB
-rw-r--r--
2026-04-17 16:36
README.iif
541
B
-rw-r--r--
2026-04-17 16:36
README.isc_info_xxx
3.61
KB
-rw-r--r--
2026-04-17 16:36
README.joins.txt
1.23
KB
-rw-r--r--
2026-04-17 16:36
README.keywords
5.26
KB
-rw-r--r--
2026-04-17 16:36
README.leave_labels
1.68
KB
-rw-r--r--
2026-04-17 16:36
README.length
486
B
-rw-r--r--
2026-04-17 16:36
README.linger
1.34
KB
-rw-r--r--
2026-04-17 16:36
README.list
1.04
KB
-rw-r--r--
2026-04-17 16:36
README.management_statements_psql.md
925
B
-rw-r--r--
2026-04-17 16:36
README.mapping.html
14.91
KB
-rw-r--r--
2026-04-17 16:36
README.merge.txt
1.77
KB
-rw-r--r--
2026-04-17 16:36
README.null_value
23
B
-rw-r--r--
2026-04-17 16:36
README.nullif
611
B
-rw-r--r--
2026-04-17 16:36
README.offset_fetch.txt
1.69
KB
-rw-r--r--
2026-04-17 16:36
README.order_by_expressions_nulls
1.67
KB
-rw-r--r--
2026-04-17 16:36
README.packages.txt
5.12
KB
-rw-r--r--
2026-04-17 16:36
README.plan
3.49
KB
-rw-r--r--
2026-04-17 16:36
README.regr_functions.txt
1.14
KB
-rw-r--r--
2026-04-17 16:36
README.returning
2.91
KB
-rw-r--r--
2026-04-17 16:36
README.rows
1.34
KB
-rw-r--r--
2026-04-17 16:36
README.savepoints
4.08
KB
-rw-r--r--
2026-04-17 16:36
README.scrollable_cursors.txt
3.06
KB
-rw-r--r--
2026-04-17 16:36
README.select_expressions
2.18
KB
-rw-r--r--
2026-04-17 16:36
README.sequence_generators
1.68
KB
-rw-r--r--
2026-04-17 16:36
README.set_bind.md
4.49
KB
-rw-r--r--
2026-04-17 16:36
README.set_role
768
B
-rw-r--r--
2026-04-17 16:36
README.set_transaction.txt
1.63
KB
-rw-r--r--
2026-04-17 16:36
README.similar_to.txt
9.53
KB
-rw-r--r--
2026-04-17 16:36
README.sql_security.txt
5.51
KB
-rw-r--r--
2026-04-17 16:36
README.statistical_functions.txt
1.6
KB
-rw-r--r--
2026-04-17 16:36
README.subroutines.txt
4.23
KB
-rw-r--r--
2026-04-17 16:36
README.substring_similar.txt
1.2
KB
-rw-r--r--
2026-04-17 16:36
README.time_zone.md
14.34
KB
-rw-r--r--
2026-04-17 16:36
README.trim
997
B
-rw-r--r--
2026-04-17 16:36
README.universal_triggers
2.77
KB
-rw-r--r--
2026-04-17 16:36
README.update_or_insert
1.38
KB
-rw-r--r--
2026-04-17 16:36
README.user_management
4.43
KB
-rw-r--r--
2026-04-17 16:36
README.view_updates
23
B
-rw-r--r--
2026-04-17 16:36
README.window_functions.md
14.92
KB
-rw-r--r--
2026-04-17 16:36
Save
Rename
-------- Packages -------- Author: Adriano dos Santos Fernandes <adrianosf@uol.com.br> (This feature was sponsored with donations gathered in the "5th Brazilian Firebird Developers Day") Description: A package is a group of procedures and functions managed as one entity. Syntax: <package_header> ::= { CREATE [OR ALTER] | ALTER | RECREATE } PACKAGE <name> AS BEGIN [ <package_item> ... ] END <package_item> ::= <function_decl> ; | <procedure_decl> ; <function_decl> ::= FUNCTION <name> [( <parameters> )] RETURNS <type> <procedure_decl> ::= PROCEDURE <name> [( <parameters> ) [RETURNS ( <parameters> )]] <package_body> ::= { CREATE | RECREATE } PACKAGE BODY <name> AS BEGIN [ <package_item> ... ] [ <package_body_item> ... ] END <package_body_item> ::= <function_impl> | <procedure_impl> <function_impl> ::= FUNCTION <name> [( <parameters> )] RETURNS <type> AS BEGIN ... END | FUNCTION <name> [( <parameters> )] RETURNS <type> EXTERNAL NAME '<name>' ENGINE <engine> <procedure_impl> ::= PROCEDURE <name> [( <parameters> ) [RETURNS ( <parameters> )]] AS BEGIN ... END | PROCEDURE <name> [( <parameters> ) [RETURNS ( <parameters> )]] EXTERNAL NAME '<name>' ENGINE <engine> <drop_package_header> ::= DROP PACKAGE <name> <drop_package_body> ::= DROP PACKAGE BODY <name> Objectives: - Make functional dependent code separated in logical modules like programming languages do. It's well known in programming world that having code grouped in some way (for example in namespaces, units or classes) is a good thing. With standard procedures and functions in the database this is not possible. It's possible to group them in different scripts files, but two problems remain: 1) The grouping is not represented in the database metadata. 2) They all participate in a flat namespace and all routines are callable by everyone (not talking about security permissions here). - Facilitate dependency tracking between its internal routines and between other packaged and unpackaged routines. Firebird packages are divided in two pieces: a header (aka PACKAGE) and a body (aka PACKAGE BODY). This division is very similar to a Delphi unit. The header corresponds to the interface part, and the body corresponds to the implementation part. The user needs first to create the header (CREATE PACKAGE) and after it the body (CREATE PACKAGE BODY). When a packaged routine uses a determined database object, it's registered on Firebird system tables that the package body depends on that object. If you want to, for example, drop that object, you first need to remove who depends on it. As who depends on it is a package body, you can just drop it even if some other database object depends on this package. When the body is dropped, the header remains, allowing you to create its body again after changing it based on the object removal. - Facilitate permission management. It's generally a good practice to create routines with a privileged database user and grant usage to them for users or roles. As Firebird runs the routines with the caller privileges, it's also necessary to grant resources usage to each routine, when these resources would not be directly accessible to the callers, and grant usage of each routine to users and/or roles. Packaged routines do not have individual privileges. The privileges act on the package. Privileges granted to packages are valid for all (including private) package body routines, but are stored for the package header. Example usage: GRANT SELECT ON TABLE secret TO PACKAGE pk_secret; GRANT EXECUTE ON PACKAGE pk_secret TO ROLE role_secret; - Introduce private scope to routines making them available only for internal usage in the defining package. All programming languages have the notion of routine scope. But without some form of grouping, this is not possible. Firebird packages also work as Delphi units in this regard. If a routine is not declared on the package header (interface) and is implemented in the body (implementation), it becomes a private routine. A private routine can only be called from inside its package. Syntax rules: - A package body should implement all routines declared in the header and in the body start, with the same signature. - Default value for procedure parameters could not be redefined (be informed in <package_item> and <package_body_item>). That means, they can be in <package_body_item> only for private procedures not declared. Notes: - DROP PACKAGE drops the package body before dropping its header. - UDFs (DECLARE EXTERNAL FUNCTION) are currently not supported inside packages. Examples: - See examples/package.