Project / Query Module

CCL statements are stored in files with the extension ".ccl". Each .ccl file is called a "query module".

When a query module is compiled and executed, all of the statements in the query module are compiled together and stored in the same file (which has the extension ".ccx"). The server executes the .ccx file as a whole, so all the statements in the query module are executed together.

Query modules may be re-used simply by loading them multiple times. For example, if you have query modules A, B, and C, you may load a copy of C into both A and B. (If you load more than one copy of module C into module A, you will need to use a different name for module C each time that you load it into A. If you are using Studio, Studio will automatically append a unique suffix (for example, "_1", "_2", and so on) each time that you load an additional copy of A into B.)

Warning!  Because there is still only one underlying module, even if you load multiple copies of it, changes to one instance of the module will also affect the other instances.

A query module that is not nested inside any other query module is called a project.

A module nested inside another module is called a sub-module.

If a project contains other modules, then when the project is compiled, all of the modules within it are compiled at the same time and their compiled code is stored in the same .ccx file as the project's code.

A project is sometimes called a program or application; the terms are synonymous.