| Module::Build - Build and install Perl modules |
Module::Build - Build and install Perl modules
Standard process for building & installing modules:
perl Build.PL ./Build ./Build test ./Build install
Or, if you're on a platform (like DOS or Windows) that doesn't require the "./" notation, you can do this:
perl Build.PL Build Build test Build install
Module::Build
is a system for building, testing, and installing
Perl modules. It is meant to be an alternative to
ExtUtils::MakeMaker
. Developers may alter the behavior of the
module through subclassing in a much more straightforward way than
with MakeMaker
. It also does not require a make
on your system
- most of the Module::Build
code is pure-perl and written in a very
cross-platform way.
See MOTIVATIONS for more comparisons between ExtUtils::MakeMaker
and Module::Build
.
To install Module::Build
, and any other module that uses
Module::Build
for its installation process, do the following:
perl Build.PL # 'Build.PL' script creates the 'Build' script ./Build # Need ./ to ensure we're using this "Build" script ./Build test # and not another one that happens to be in the PATH ./Build install
This illustrates initial configuration and the running of three 'actions'. In this case the actions run are 'build' (the default action), 'test', and 'install'. Other actions defined so far include:
build manifest clean manifest_skip code manpages config_data pardist diff ppd dist ppmdist distcheck prereq_data distclean prereq_report distdir pure_install distinstall realclean distmeta retest distsign skipcheck disttest test docs testall fakeinstall testcover help testdb html testpod install testpodcoverage installdeps versioninstall
You can run the 'help' action for a complete list of actions.
The documentation for Module::Build
is broken up into sections:
This is the document you are currently reading. It describes basic
usage and background information. Its main purpose is to assist the
user who wants to learn how to invoke and control Module::Build
scripts at the command line.
This document describes the structure and organization of
Module::Build
, and the relevant concepts needed by authors who are
writing Build.PL scripts for a distribution or controlling
Module::Build
processes programmatically.
This is a reference to the Module::Build
API.
This document demonstrates how to accomplish many common tasks. It covers general command line usage and authoring of Build.PL scripts. Includes working examples.
There are some general principles at work here. First, each task when building a module is called an "action". These actions are listed above; they correspond to the building, testing, installing, packaging, etc., tasks.
Second, arguments are processed in a very systematic way. Arguments
are always key=value pairs. They may be specified at perl Build.PL
time (i.e. perl Build.PL destdir=/my/secret/place
), in which case
their values last for the lifetime of the Build
script. They may
also be specified when executing a particular action (i.e.
Build test verbose=1
), in which case their values last only for the
lifetime of that command. Per-action command line parameters take
precedence over parameters specified at perl Build.PL
time.
The build process also relies heavily on the Config.pm
module.
If the user wishes to override any of the
values in Config.pm
, she may specify them like so:
perl Build.PL --config cc=gcc --config ld=gcc
The following build actions are provided by default.
[version 0.01]
If you run the Build
script without any arguments, it runs the
build
action, which in turn runs the code
and docs
actions.
This is analogous to the MakeMaker
make all target.
[version 0.01]
This action will clean up any files that the build process may have
created, including the blib/
directory (but not including the
_build/
directory and the Build
script itself).
[version 0.20]
This action builds your code base.
By default it just creates a blib/
directory and copies any .pm
and .pod
files from your lib/
directory into the blib/
directory. It also compiles any .xs
files from lib/
and places
them in blib/
. Of course, you need a working C compiler (probably
the same one that built perl itself) for the compilation to work
properly.
The code
action also runs any .PL
files in your lib/
directory. Typically these create other files, named the same but
without the .PL
ending. For example, a file lib/Foo/Bar.pm.PL
could create the file lib/Foo/Bar.pm. The .PL
files are
processed first, so any .pm
files (or other kinds that we deal
with) will get copied correctly.
[version 0.26]
...
[version 0.14]
This action will compare the files about to be installed with their installed counterparts. For .pm and .pod files, a diff will be shown (this currently requires a 'diff' program to be in your PATH). For other files like compiled binary files, we simply report whether they differ.
A flags
parameter may be passed to the action, which will be passed
to the 'diff' program. Consult your 'diff' documentation for the
parameters it will accept - a good one is -u
:
./Build diff flags=-u
[version 0.02]
This action is helpful for module authors who want to package up their module for source distribution through a medium like CPAN. It will create a tarball of the files listed in MANIFEST and compress the tarball using GZIP compression.
By default, this action will use the Archive::Tar
module. However, you can
force it to use binary "tar" and "gzip" executables by supplying an explicit
tar
(and optional gzip
) parameter:
./Build dist --tar C:\path\to\tar.exe --gzip C:\path\to\zip.exe
[version 0.05]
Reports which files are in the build directory but not in the MANIFEST file, and vice versa. (See manifest for details.)
[version 0.05]
Performs the 'realclean' action and then the 'distcheck' action.
[version 0.05]
Creates a "distribution directory" named $dist_name-$dist_version
(if that directory already exists, it will be removed first), then
copies all the files listed in the MANIFEST file to that directory.
This directory is what the distribution tarball is created from.
[version 0.37]
Performs the 'distdir' action, then switches into that directory and runs a
perl Build.PL
, followed by the 'build' and 'install' actions in that
directory. Use PERL_MB_OPT or .modulebuildrc to set options that should be
applied during subprocesses
[version 0.21]
Creates the META.yml file that describes the distribution.
META.yml is a file containing various bits of metadata about the distribution. The metadata includes the distribution name, version, abstract, prerequisites, license, and various other data about the distribution. This file is created as META.yml in a simplified YAML format.
META.yml file must also be listed in MANIFEST - if it's not, a warning will be issued.
The current version of the META.yml specification can be found on CPAN as the CPAN::Meta::Spec manpage.
[version 0.16]
Uses Module::Signature
to create a SIGNATURE file for your
distribution, and adds the SIGNATURE file to the distribution's
MANIFEST.
[version 0.05]
Performs the 'distdir' action, then switches into that directory and runs a
perl Build.PL
, followed by the 'build' and 'test' actions in that directory.
Use PERL_MB_OPT or .modulebuildrc to set options that should be applied
during subprocesses
[version 0.20]
This will generate documentation (e.g. Unix man pages and HTML
documents) for any installable items under blib/ that
contain POD. If there are no bindoc
or libdoc
installation
targets defined (as will be the case on systems that don't support
Unix manpages) no action is taken for manpages. If there are no
binhtml
or libhtml
installation targets defined no action is
taken for HTML documents.
[version 0.02]
This is just like the install
action, but it won't actually do
anything, it will just report what it would have done if you had
actually run the install
action.
[version 0.03]
This action will simply print out a message that is meant to help you use the build process. It will show you a list of available build actions too.
With an optional argument specifying an action name (e.g. Build help
test
), the 'help' action will show you any POD documentation it can
find for that action.
[version 0.26]
This will generate HTML documentation for any binary or library files
under blib/ that contain POD. The HTML documentation will only be
installed if the install paths can be determined from values in
Config.pm
. You can also supply or override install paths on the
command line by specifying install_path
values for the binhtml
and/or libhtml
installation targets.
With an optional html_links
argument set to a false value, you can
skip the search for other documentation to link to, because that can
waste a lot of time if there aren't any links to generate anyway:
./Build html --html_links 0
[version 0.01]
This action will use ExtUtils::Install
to install the files from
blib/
into the system. See INSTALL PATHS
for details about how Module::Build determines where to install
things, and how to influence this process.
If you want the installation process to look around in @INC
for
other versions of the stuff you're installing and try to delete it,
you can use the uninst
parameter, which tells ExtUtils::Install
to
do so:
./Build install uninst=1
This can be a good idea, as it helps prevent multiple versions of a module from being present on your system, which can be a confusing situation indeed.
[version 0.36]
This action will use the cpan_client
parameter as a command to install
missing prerequisites. You will be prompted whether to install
optional dependencies.
The cpan_client
option defaults to 'cpan' but can be set as an option or in
.modulebuildrc. It must be a shell command that takes a list of modules to
install as arguments (e.g. 'cpanp -i' for CPANPLUS). If the program part is a
relative path (e.g. 'cpan' or 'cpanp'), it will be located relative to the perl
program that executed Build.PL.
/opt/perl/5.8.9/bin/perl Build.PL ./Build installdeps --cpan_client 'cpanp -i' # installs to 5.8.9
[version 0.05]
This is an action intended for use by module authors, not people installing modules. It will bring the MANIFEST up to date with the files currently present in the distribution. You may use a MANIFEST.SKIP file to exclude certain files or directories from inclusion in the MANIFEST. MANIFEST.SKIP should contain a bunch of regular expressions, one per line. If a file in the distribution directory matches any of the regular expressions, it won't be included in the MANIFEST.
The following is a reasonable MANIFEST.SKIP starting point, you can add your own stuff to it:
^_build ^Build$ ^blib ~$ \.bak$ ^MANIFEST\.SKIP$ CVS
See the distcheck and skipcheck actions if you want to find out
what the manifest
action would do, without actually doing anything.
[version 0.3608]
This is an action intended for use by module authors, not people installing modules. It will generate a boilerplate MANIFEST.SKIP file if one does not already exist.
[version 0.28]
This will generate man pages for any binary or library files under
blib/ that contain POD. The man pages will only be installed if the
install paths can be determined from values in Config.pm
. You can
also supply or override install paths by specifying there values on
the command line with the bindoc
and libdoc
installation
targets.
[version 0.2806]
Generates a PAR binary distribution for use with PAR or the PAR::Dist manpage.
It requires that the PAR::Dist module (version 0.17 and up) is installed on your system.
[version 0.20]
Build a PPD file for your distribution.
This action takes an optional argument codebase
which is used in
the generated PPD file to specify the (usually relative) URL of the
distribution. By default, this value is the distribution name without
any path information.
Example:
./Build ppd --codebase "MSWin32-x86-multi-thread/Module-Build-0.21.tar.gz"
[version 0.23]
Generates a PPM binary distribution and a PPD description file. This
action also invokes the ppd
action, so it can accept the same
codebase
argument described under that action.
This uses the same mechanism as the dist
action to tar & zip its
output, so you can supply tar
and/or gzip
parameters to affect
the result.
[version 0.32]
This action prints out a Perl data structure of all prerequisites and the versions
required. The output can be loaded again using eval()
. This can be useful for
external tools that wish to query a Build script for prerequisites.
[version 0.28]
This action prints out a list of all prerequisites, the versions required, and the versions actually installed. This can be useful for reviewing the configuration of your system prior to a build, or when compiling data to send for a bug report.
[version 0.28]
This action is identical to the install
action. In the future,
though, when install
starts writing to the file
$(INSTALLARCHLIB)/perllocal.pod, pure_install
won't, and that
will be the only difference between them.
[version 0.01]
This action is just like the clean
action, but also removes the
_build
directory and the Build
script. If you run the
realclean
action, you are essentially starting over, so you will
have to re-create the Build
script again.
[version 0.2806]
This is just like the test
action, but doesn't actually build the
distribution first, and doesn't add blib/ to the load path, and
therefore will test against a previously installed version of the
distribution. This can be used to verify that a certain installed
distribution still works, or to see whether newer versions of a
distribution still pass the old regression tests, and so on.
[version 0.05]
Reports which files are skipped due to the entries in the MANIFEST.SKIP file (See manifest for details)
[version 0.01]
This will use Test::Harness
or TAP::Harness
to run any regression
tests and report their results. Tests can be defined in the standard
places: a file called test.pl
in the top-level directory, or several
files ending with .t
in a t/
directory.
If you want tests to be 'verbose', i.e. show details of test execution
rather than just summary information, pass the argument verbose=1
.
If you want to run tests under the perl debugger, pass the argument
debugger=1
.
If you want to have Module::Build find test files with different file
name extensions, pass the test_file_exts
argument with an array
of extensions, such as [qw( .t .s .z )]
.
If you want test to be run by TAP::Harness
, rather than Test::Harness
,
pass the argument tap_harness_args
as an array reference of arguments to
pass to the TAP::Harness constructor.
In addition, if a file called visual.pl
exists in the top-level
directory, this file will be executed as a Perl script and its output
will be shown to the user. This is a good place to put speed tests or
other tests that don't use the Test::Harness
format for output.
To override the choice of tests to run, you may pass a test_files
argument whose value is a whitespace-separated list of test scripts to
run. This is especially useful in development, when you only want to
run a single test to see whether you've squashed a certain bug yet:
./Build test --test_files t/something_failing.t
You may also pass several test_files
arguments separately:
./Build test --test_files t/one.t --test_files t/two.t
or use a glob()
-style pattern:
./Build test --test_files 't/01-*.t'
[version 0.2807]
[Note: the 'testall' action and the code snippets below are currently in alpha stage, see http://www.nntp.perl.org/group/perl.module.build/2007/03/msg584.html ]
Runs the test
action plus each of the test$type
actions defined by
the keys of the test_types
parameter.
Currently, you need to define the ACTION_test$type method yourself and enumerate them in the test_types parameter.
my $mb = Module::Build->subclass( code => q( sub ACTION_testspecial { shift->generic_test(type => 'special'); } sub ACTION_testauthor { shift->generic_test(type => 'author'); } ) )->new( ... test_types => { special => '.st', author => ['.at', '.pt' ], }, ...
[version 0.26]
Runs the test
action using Devel::Cover
, generating a
code-coverage report showing which parts of the code were actually
exercised during the tests.
To pass options to Devel::Cover
, set the $DEVEL_COVER_OPTIONS
environment variable:
DEVEL_COVER_OPTIONS=-ignore,Build ./Build testcover
[version 0.05]
This is a synonym for the 'test' action with the debugger=1
argument.
[version 0.25]
This checks all the files described in the docs
action and
produces Test::Harness
-style output. If you are a module author,
this is useful to run before creating a new release.
[version 0.28]
This checks the pod coverage of the distribution and
produces Test::Harness
-style output. If you are a module author,
this is useful to run before creating a new release.
[version 0.16]
** Note: since only.pm
is so new, and since we just recently added
support for it here too, this feature is to be considered
experimental. **
If you have the only.pm
module installed on your system, you can
use this action to install a module into the version-specific library
trees. This means that you can have several versions of the same
module installed and use
a specific one like this:
use only MyModule => 0.55;
To override the default installation libraries in only::config
,
specify the versionlib
parameter when you run the Build.PL
script:
perl Build.PL --versionlib /my/version/place/
To override which version the module is installed as, specify the
version
parameter when you run the Build.PL
script:
perl Build.PL --version 0.50
See the only.pm
documentation for more information on
version-specific installs.
The following options can be used during any invocation of Build.PL
or the Build script, during any action. For information on other
options specific to an action, see the documentation for the
respective action.
NOTE: There is some preliminary support for options to use the more
familiar long option style. Most options can be preceded with the
--
long option prefix, and the underscores changed to dashes
(e.g. --use-rcfile
). Additionally, the argument to boolean options is
optional, and boolean options can be negated by prefixing them with
no
or no-
(e.g. --noverbose
or --no-verbose
).
Suppress informative messages on output.
Display extra information about the Build on output. verbose
will
turn off quiet
Sets the cpan_client
command for use with the installdeps
action.
See installdeps
for more details.
Load the ~/.modulebuildrc option file. This option can be set to false to prevent the custom resource file from being loaded.
Suppresses the check upon startup that the version of Module::Build
we're now running under is the same version that was initially invoked
when building the distribution (i.e. when the Build.PL
script was
first run). As of 0.3601, a mismatch results in a warning instead of
a fatal error, so this option effectively just suppresses the warning.
Prints Module::Build debugging information to STDOUT, such as a trace of executed build actions.
[version 0.28]
When Module::Build starts up, it will look first for a file,
$ENV{HOME}/.modulebuildrc. If it's not found there, it will look
in the .modulebuildrc file in the directories referred to by
the environment variables HOMEDRIVE
+ HOMEDIR
, USERPROFILE
,
APPDATA
, WINDIR
, SYS$LOGIN
. If the file exists, the options
specified there will be used as defaults, as if they were typed on the
command line. The defaults can be overridden by specifying new values
on the command line.
The action name must come at the beginning of the line, followed by any
amount of whitespace and then the options. Options are given the same
as they would be on the command line. They can be separated by any
amount of whitespace, including newlines, as long there is whitespace at
the beginning of each continued line. Anything following a hash mark (#
)
is considered a comment, and is stripped before parsing. If more than
one line begins with the same action name, those lines are merged into
one set of options.
Besides the regular actions, there are two special pseudo-actions: the
key *
(asterisk) denotes any global options that should be applied
to all actions, and the key 'Build_PL' specifies options to be applied
when you invoke perl Build.PL
.
* verbose=1 # global options diff flags=-u install --install_base /home/ken --install_path html=/home/ken/docs/html installdeps --cpan_client 'cpanp -i'
If you wish to locate your resource file in a different location, you
can set the environment variable MODULEBUILDRC
to the complete
absolute path of the file containing your options.
[version 0.28]
Specifies an alternate location for a default options file as described above.
[version 0.36]
Command line options that are applied to Build.PL or any Build action. The string is split as the shell would (e.g. whitespace) and the result is prepended to any actual command-line arguments.
[version 0.19]
When you invoke Module::Build's build
action, it needs to figure
out where to install things. The nutshell version of how this works
is that default installation locations are determined from
Config.pm, and they may be overridden by using the install_path
parameter. An install_base
parameter lets you specify an
alternative installation root like /home/foo, and a destdir
lets
you specify a temporary installation directory like /tmp/install in
case you want to create bundled-up installable packages.
Natively, Module::Build provides default installation locations for the following types of installable items:
Usually pure-Perl module files ending in .pm.
"Architecture-dependent" module files, usually produced by compiling XS, Inline, or similar code.
Programs written in pure Perl. In order to improve reuse, try to make these as small as possible - put the code into modules whenever possible.
"Architecture-dependent" executable programs, i.e. compiled C code or something. Pretty rare to see this in a perl distribution, but it happens.
Documentation for the stuff in script
and bin
. Usually
generated from the POD in those files. Under Unix, these are manual
pages belonging to the 'man1' category.
Documentation for the stuff in lib
and arch
. This is usually
generated from the POD in .pm files. Under Unix, these are manual
pages belonging to the 'man3' category.
This is the same as bindoc
above, but applies to HTML documents.
This is the same as libdoc
above, but applies to HTML documents.
Four other parameters let you control various aspects of how installation paths are determined:
The default destinations for these installable things come from
entries in your system's Config.pm
. You can select from three
different sets of default locations by setting the installdirs
parameter as follows:
'installdirs' set to: core site vendor
uses the following defaults from Config.pm:
lib => installprivlib installsitelib installvendorlib arch => installarchlib installsitearch installvendorarch script => installscript installsitescript installvendorscript bin => installbin installsitebin installvendorbin bindoc => installman1dir installsiteman1dir installvendorman1dir libdoc => installman3dir installsiteman3dir installvendorman3dir binhtml => installhtml1dir installsitehtml1dir installvendorhtml1dir [*] libhtml => installhtml3dir installsitehtml3dir installvendorhtml3dir [*]
* Under some OS (eg. MSWin32) the destination for HTML documents is determined by the C<Config.pm> entry C<installhtmldir>.
The default value of installdirs
is "site". If you're creating
vendor distributions of module packages, you may want to do something
like this:
perl Build.PL --installdirs vendor
or
./Build install --installdirs vendor
If you're installing an updated version of a module that was included
with perl itself (i.e. a "core module"), then you may set
installdirs
to "core" to overwrite the module in its present
location.
(Note that the 'script' line is different from MakeMaker
-
unfortunately there's no such thing as "installsitescript" or
"installvendorscript" entry in Config.pm
, so we use the
"installsitebin" and "installvendorbin" entries to at least get the
general location right. In the future, if Config.pm
adds some more
appropriate entries, we'll start using those.)
Once the defaults have been set, you can override them.
On the command line, that would look like this:
perl Build.PL --install_path lib=/foo/lib --install_path arch=/foo/lib/arch
or this:
./Build install --install_path lib=/foo/lib --install_path arch=/foo/lib/arch
You can also set the whole bunch of installation paths by supplying the
install_base
parameter to point to a directory on your system. For
instance, if you set install_base
to "/home/ken" on a Linux
system, you'll install as follows:
lib => /home/ken/lib/perl5 arch => /home/ken/lib/perl5/i386-linux script => /home/ken/bin bin => /home/ken/bin bindoc => /home/ken/man/man1 libdoc => /home/ken/man/man3 binhtml => /home/ken/html libhtml => /home/ken/html
Note that this is different from how MakeMaker
's PREFIX
parameter works. install_base
just gives you a default layout under the
directory you specify, which may have little to do with the
installdirs=site
layout.
The exact layout under the directory you specify may vary by system - we try to do the "sensible" thing on each platform.
If you want to install everything into a temporary directory first
(for instance, if you want to create a directory tree that a package
manager like rpm
or dpkg
could create a package from), you can
use the destdir
parameter:
perl Build.PL --destdir /tmp/foo
or
./Build install --destdir /tmp/foo
This will effectively install to "/tmp/foo/$sitelib",
"/tmp/foo/$sitearch", and the like, except that it will use
File::Spec
to make the pathnames work correctly on whatever
platform you're installing on.
Provided for compatibility with ExtUtils::MakeMaker
's PREFIX argument.
prefix
should be used when you want Module::Build to install your
modules, documentation, and scripts in the same place as
ExtUtils::MakeMaker
's PREFIX mechanism.
The following are equivalent.
perl Build.PL --prefix /tmp/foo perl Makefile.PL PREFIX=/tmp/foo
Because of the complex nature of the prefixification logic, the
behavior of PREFIX in MakeMaker
has changed subtly over time.
Module::Build's --prefix logic is equivalent to the PREFIX logic found
in ExtUtils::MakeMaker
6.30.
The maintainers of MakeMaker
do understand the troubles with the
PREFIX mechanism, and added INSTALL_BASE support in version 6.31 of
MakeMaker
, which was released in 2006.
If you don't need to retain compatibility with old versions (pre-6.31) of ExtUtils::MakeMaker
or
are starting a fresh Perl installation we recommend you use
install_base
instead (and INSTALL_BASE
in ExtUtils::MakeMaker
).
See Installing in the same location as ExtUtils::MakeMaker in the Module::Build::Cookbook manpage for further information.
There are several reasons I wanted to start over, and not just fix
what I didn't like about MakeMaker
:
I don't like the core idea of MakeMaker
, namely that make
should be
involved in the build process. Here are my reasons:
When a person is installing a Perl module, what can you assume about
their environment? Can you assume they have make
? No, but you can
assume they have some version of Perl.
When a person is writing a Perl module for intended distribution, can you assume that they know how to build a Makefile, so they can customize their build process? No, but you can assume they know Perl, and could customize that way.
For years, these things have been a barrier to people getting the build/install process to do what they want.
There are several architectural decisions in MakeMaker
that make it
very difficult to customize its behavior. For instance, when using
MakeMaker
you do use ExtUtils::MakeMaker
, but the object created in
WriteMakefile()
is actually blessed into a package name that's
created on the fly, so you can't simply subclass
ExtUtils::MakeMaker
. There is a workaround MY
package that lets
you override certain MakeMaker
methods, but only certain explicitly
preselected (by MakeMaker
) methods can be overridden. Also, the method
of customization is very crude: you have to modify a string containing
the Makefile text for the particular target. Since these strings
aren't documented, and can't be documented (they take on different
values depending on the platform, version of perl, version of
MakeMaker
, etc.), you have no guarantee that your modifications will
work on someone else's machine or after an upgrade of MakeMaker
or
perl.
It is risky to make major changes to MakeMaker
, since it does so many
things, is so important, and generally works. Module::Build
is an
entirely separate package so that I can work on it all I want, without
worrying about backward compatibility with MakeMaker
.
Finally, Perl is said to be a language for system administration.
Could it really be the case that Perl isn't up to the task of building
and installing software? Even if that software is a bunch of
.pm
files that just need to be copied from one place to
another? My sense was that we could design a system to accomplish
this in a flexible, extensible, and friendly manner.
The current method of relying on time stamps to determine whether a
derived file is out of date isn't likely to scale well, since it
requires tracing all dependencies backward, it runs into problems on
NFS, and it's just generally flimsy. It would be better to use an MD5
signature or the like, if available. See cons
for an example.
- append to perllocal.pod - add a 'plugin' functionality
Ken Williams<EMAIL_ADDRESS>Development questions, bug reports, and patches should be sent to the Module-Build mailing list at<EMAIL_ADDRESS>Bug reports are also welcome at <http://rt.cpan.org/NoAuth/Bugs.html?Dist=Module-Build>.
The latest development version is available from the Git repository at <https://github.com/Perl-Toolchain-Gang/Module-Build>
Copyright (c) 2001-2006 Ken Williams. All rights reserved.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
perl(1)
, the Module::Build::Cookbook manpage, the Module::Build::Authoring manpage,
the Module::Build::API manpage, the ExtUtils::MakeMaker manpage
META.yml Specification: the CPAN::Meta::Spec manpage
http://search.cpan.org/dist/PerlBuildSystem/
| Module::Build - Build and install Perl modules |


I'm starting learning Japanese!
August 19 2007, 4:31 PM
Here we are! I've finally taken my courage in my hands and I start learning Japonese. A whole program!
I'm fortunate though as my girlfriend, Mari, is giving me a special course every evening.
I try to keep the rhythm of 10 new signs a day (10 hiraganas).
But this is theory. Because since I've started (last Wednesday, so 5 days ago), I've learned 25 hiraganas only :-(
Argh!
Ok, here there are (just for fun)
あいうえお
かきくけこ
さしすせそ
たちつてと
なにぬねの
That's a good beginning ;-)
I just would like to mention a very great tool to learn such different language.
It's called Provoc (screenshot beneath) and it's, of course, only for Mac. It helps you memorize vocabulary for any foreign language you may wish to learn.
I'm building my own Provoc file with, at the moment, only hiragana signs and 26 simple vocabulary.
Download Provoc for Mac
- Download my own vocabulary file (always in progress)
- Free vocabulary list for many many languages
-


Recently I decided I want to store physical discovery data (name,
physical location, host if it's a VM) on the machine's account in Active
Directory, because we have a lot of machines and during a crisis we
sometimes forget where they are.
I started with our VMware infrastructure, and decided to list 3 of the
VM's attributes in AD:
- The VM name, since it's sometimes different from the OS name (a VM can be called "A" and contain a Windows OS called "B" in the domain)
- The current VMware host, because if the machine disappears we want to know where it was last seen
- The VM Uid - a pathlike expression containing the VM's and the cluster's unique identifiers, allowing the virtualization team to quickly find the VM in their datastore
I decided to write them into one of the extension attributes - there
are10 such attributes set aside by AD for such tasks. I chose
extensionAttribute3
.
The script finds all VMs in a given vSphere, and finds those whose OS is
in the same domain as the current user. For those VMs, it creates the
description string, searches for the AD computer account matching the
VM's OS name and updates its extension attribute.
param(
$viServer = 'VSPHERE'
)
$myDomain = $env:USERDNSDOMAIN
# VMWare init
gsnp -reg | ?{('VMware.VimAutomation.Core','VMware.VimAutomation.License','VMware.DeployAutomation','VMware.ImageBuilder') -contains $_.name} | asnp
Disconnect-VIServer -Confirm:0
Connect-VIServer $viServer | out-null
# AD init
ipmo ActiveDirectory
Get-VM | %{
$vm = $_
$guest = Get-VMGuest $vm
$ret = $vm | select name,VMHost,Folder,Uid
$ret | Add-Member NoteProperty 'HostName' ($guest.HostName)
$ret
} | ?{$_.HostName -match ([regex]::escape($myDomain)+'$'} | %{
$descString = ('VMWare: {1}/{0} | {2}' -f $_.name,$_.VMHost,$_.Uid).toString()
$_ | select HostName, @{name='descString';expression={$_.descString}}
} | %{
$hostName = $_.hostName
$comp = get-ADComputer -fi {dnsHostName -eq $HostName} -ErrorAction 'continue'
$descString=$_.descString
if($comp){
set-ADComputer $_ -Add @{'extensionattribute3'=$descString}
$_
}
}


Chennai, India
Burma Bazaar
A gray market run by Burmese Indians offers a portal to a forgotten period in history.
by yamunaRight outside Chennai Beach railway station, in the city’s historic George Town neighborhood, rows of small shops sell a variety of goods from toys, perfumes, and chocolates to various electronics. This congested, seemingly nondescript market, known as Burma Bazaar, was started in the late 1960s by Burmese refugees.
The first generation of shopkeepers migrated to Burma at a time when it was still a province of British India. Following the 1962 military coup d’état, many Burmese Indians fled Burma, returning to their cities and towns of origin across India. Upon arriving at the Chennai Beach station, many began selling the items they’d brought with them to earn a little extra money. Soon, the area developed into a bustling market that had gained a reputation for trading in smuggled goods.
Just down the street from the main road on Moore Street, you’ll find a number of Burmese street food stalls. They open for business in the evenings, generally after 5 p.m., and remain open late into the night. Dishes such as atho (Burmese-inspired noodle salad dish) and mohinga (Burmese rice noodle and fish-based soup) are popular.
In the same area, you’ll find spectacular examples of the colonial-era Indo-Saracenic architecture that Chennai is famous for, including the Madras High Court building complex and the General Post Office. Fort St. George, the first English fortress in India completed in 1644, is less than a ten minute drive from Burma Bazaar.
Community Discussion
-
No Comments Yet
Start the discussion.
forum Visit our forums.


Metal sodium is widely used as a strong reducing agent in preparative chemistry and industry, including in metallurgy.


This part—
(a) Prescribes standard forms (SF’s) and references optional forms (OF’s) and agency-prescribed forms for use in acquisition;
(b) Contains requirements and information generally applicable to the forms; and
(c) Illustrates the forms.
“Exception,” as used in this part, means an approved departure from the established design, content, printing specifications, or conditions for use of any standard form.
This subpart contains requirements and information generally applicable to the forms prescribed in this regulation.
The requirements for use of the forms prescribed or referenced in this part are contained in Parts 1 through 52, where the subject matter applicable to each form is addressed. The specific location of each requirement is identified in Subpart 53.2.
The form prescriptions in Subpart 53.2 and the illustrations in Subpart 53.3 contain current edition dates. Contracting officers shall use the current editions unless otherwise authorized under this regulation.
Agencies shall not—
(a) Alter a standard form prescribed by this regulation; or
(b) Use for the same purpose any form other than the standard form prescribed by this regulation without receiving in advance an exception to the form.
Standard and optional forms (obtained as required by 53.107) may be overprinted with names, addresses, and other uniform entries that are consistent with the purpose of the form and that do not alter the form in any way. Exception approval for overprinting is not needed.
(a) The forms prescribed by this part may be computer generated without exception approval (see 53.103), provided—
(1) There is no change to the name, content, or sequence of the data elements, and the form carries the Standard or Optional Form number and edition date (see 53.111); or
(2) The form is in an electronic format covered by the American National Standards Institute (ANSI) X12 Standards published by the Accredited Standards Committee X12 on Electronic Data Interchange or a format that can be translated into one of those standards.
(b) The standards listed in paragraph (a)(2) of this section may also be used for submission of data set forth in other parts for which specific forms have not been prescribed.
Contracting offices may request exceptions (see 53.103) to standard forms for special construction and printing. Examples of common exceptions are as follows:
|
Standard Forms |
Special Construction and Printing |
|
(a) SF 18— |
(1) With vertical lines omitted (for listing of supplies and services, unit, etc.); |
|
|
(2) As reproducible masters; and/or |
|
|
(3) In carbon interleaved pads or sets. |
|
As die-cut stencils or reproducible masters. |
|
|
(c) SF 44— |
(1) With serial numbers and contracting office name and address; and/or |
|
|
(2) On special weight of paper and with the type of construction, number of sets per book, 2and number of parts per set as specified by the contracting officer. (Executive agencies may supplement the administrative instructions on the inside front cover of the book.) |
|
(d) SF 1442— |
(1) As die-cut stencils or reproducible masters; and/or |
|
|
(2) With additional wording as required by the executive agency. (However, the sequence and wording of the items appearing on the prescribed form should not be altered. |
(a) Executive agencies shall obtain standard and optional forms from the General Services Administration (GSA) by using GSA Supply Catalog—Office Products (see 41 CFR 101-26.302). Standard forms adapted for computer preparation (see 53.105) or with special construction and printing (see 53.106) that are not available from GSA may be ordered directly from the Government Printing Office (GPO).
(b) Contractors and other parties may obtain standard and optional forms from the Superintendent of Documents, GPO, Washington, DC 20402. Standard and optional forms not available from the Superintendent of Documents may be obtained from the prescribing agency.
(c) Agency forms may be obtained from the prescribing agency.
Users of this regulation may recommend new forms or the revision, elimination, or consolidation of the forms prescribed or referenced in this regulation. Recommendations from within an executive agency shall be submitted to the cognizant council in accordance with agency procedures. Recommendations from other than executive agencies should be submitted directly to the FAR Secretariat.
Certain forms referred to in Subpart 53.2 are prescribed in other regulations and are specified by the FAR for use in acquisition. For each of these forms, the prescribing agency is identified by means of a parenthetical notation after the form number. For example, SF 1165, which is prescribed by the Government Accountability Office (GAO), is identified as SF 1165 (GAO).
Except as may be otherwise indicated in the FAR, all standard forms prescribed by the FAR may be continued on (a) plain paper of similar specification, or (b) specially constructed continuation sheets (e.g., OF 336). Continuation sheets shall be annotated in the upper right-hand corner with the reference number of the document being continued and the serial page number.
Contracting officers shall insert the clause at 52.253-1, Computer Generated Forms, in solicitations and contracts that require the contractor to submit data on Standard or Optional Forms prescribed by this regulation; and, unless prohibited by agency regulations, forms prescribed by agency supplements.


Faculty List
Chinese
Faculty Login
Index
About CS
Administration
Overview
Organization
Faculty
Faculty List
Faculty Search
Research
Research News
Research Institutions
Key Laboratory
Education
Resources
Teaching Assistant Application
English name:
Gender:
ID:
GPA
Years Older:
Email:
State:
Zip code:
TOEFL/IELTS Score:
listening:
speaking:
reading:
writing:
Thank you!


These are always needed:
An email address is required to notify the human Enter a valid phone number so that you can send an SMS to the human To ensure that you can reach your human at all times, enter both his/her email address and phone number


IntroductionFrequently asked questionsSyntax, keywords and built-in functionsStandard distributionimport implementationBrowser interface
Introduction - DOM API
Creating a document Accessing elements Attributes and methods Events Mouse events Keyboard events Focus events Drag events Query string Using Javascript objects and libraries Brython-specific built-in modules
browser
browser.ajax browser.html browser.local_storage browser.markdown browser.object_storage browser.session_storage browser.svg browser.timer browser.websocket javascript Working with Brython
Options of function
brython()
Installing the development environment Testing and debugging Deploying an application Brython for Firefox OSCookbook |
IntroductionFor the interface with the browser, Brython is compliant with the Document Object Model interface, which is widely documented on the web : This interface is language-independent. With Brython, all the operations described in the DOM API rely on two objects defined in the module browser : document and window document implements the interfaceDocument defined in the DOM API. For instance, it supports the following methods :
document.getElementById(elt_id)
returns a reference to the DOM element whose id is elt_id document.createElement(tagName)
returns a new element of type tagName ; for instance, to create an hypertext link : link = document.createElement('A') document.appendChild(elt)
add the element elt to the documentBesides this standard interface, Brython propose an alternative interface, more familiar for Brython developers. It is described in the following pages |


Artisans in Mexico use techniques that were passed on from generation to generation to create beautiful statement pieces that go great in Mexican Modern spaces. Here are some of my favorites:
Wood carved sculptures painted with natural pigments.

Recreation of centuries old pottery techniques to create contemporary pieces.


Flink Table API & SQL provides users with a set of built-in functions for data transformations. This page gives a brief overview of them. If a function that you need is not supported yet, you can implement a user-defined function. If you think that the function is general enough, please open a Jira issue for it with a detailed description.
The scalar functions take zero, one or more values as the input and return a single value as the result.
| Comparison functions | Description |
|---|---|
|
Returns TRUE if value1 is equal to value2; returns UNKNOWN if value1 or value2 is NULL. |
|
|
Returns TRUE if value1 is not equal to value2; returns UNKNOWN if value1 or value2 is NULL. |
|
|
Returns TRUE if value1 is greater than value2; returns UNKNOWN if value1 or value2 is NULL. |
|
|
Returns TRUE if value1 is greater than or equal to value2; returns UNKNOWN if value1 or value2 is NULL. |
|
|
Returns TRUE if value1 is less than value2; returns UNKNOWN if value1 or value2 is NULL. |
|
|
Returns TRUE if value1 is less than or equal to value2; returns UNKNOWN if value1 or value2 is NULL. |
|
|
Returns TRUE if value is NULL. |
|
|
Returns TRUE if value is not NULL. |
|
|
Returns TRUE if two values are not equal. NULL values are treated as identical here. E.g., |
|
|
Returns TRUE if two values are equal. NULL values are treated as identical here. E.g., |
|
|
By default (or with the ASYMMETRIC keyword), returns TRUE if value1 is greater than or equal to value2 and less than or equal to value3. With the SYMMETRIC keyword, returns TRUE if value1 is inclusively between value2 and value3. When either value2 or value3 is NULL, returns FALSE or UNKNOWN. E.g., |
|
|
By default (or with the ASYMMETRIC keyword), returns TRUE if value1 is less than value2 or greater than value3. With the SYMMETRIC keyword, returns TRUE if value1 is not inclusively between value2 and value3. When either value2 or value3 is NULL, returns TRUE or UNKNOWN. E.g., |
|
|
Returns TRUE if string1 matches pattern string2; returns UNKNOWN if string1 or string2 is NULL. An escape character can be defined if necessary. Note: The escape character has not been supported yet. |
|
|
Returns TRUE if string1 does not match pattern string2; returns UNKNOWN if string1 or string2 is NULL. An escape character can be defined if necessary. Note: The escape character has not been supported yet. |
|
|
Returns TRUE if string1 matches SQL regular expression string2; returns UNKNOWN if string1 or string2 is NULL. An escape character can be defined if necessary. Note: The escape character has not been supported yet. |
|
|
Returns TRUE if string1 does not match SQL regular expression string2; returns UNKNOWN if string1 or string2 is NULL. An escape character can be defined if necessary. Note: The escape character has not been supported yet. |
|
|
Returns TRUE if value1 exists in the given list (value2, value3, ...). When (value2, value3, ...). contains NULL, returns TRUE if the element can be found and UNKNOWN otherwise. Always returns UNKNOWN if value1 is NULL. E.g., |
|
|
Returns TRUE if value1 does not exist in the given list (value2, value3, ...). When (value2, value3, ...). contains NULL, returns FALSE if value1 can be found and UNKNOWN otherwise. Always returns UNKNOWN if value1 is NULL. E.g., |
|
|
Returns TRUE if sub-query returns at least one row. Only supported if the operation can be rewritten in a join and group operation. Note: For streaming queries the operation is rewritten in a join and group operation. The required state to compute the query result might grow infinitely depending on the number of distinct input rows. Please provide a query configuration with valid retention interval to prevent excessive state size. See Query Configuration for details. |
|
|
Returns TRUE if value is equal to a row returned by sub-query. Note: For streaming queries the operation is rewritten in a join and group operation. The required state to compute the query result might grow infinitely depending on the number of distinct input rows. Please provide a query configuration with valid retention interval to prevent excessive state size. See Query Configuration for details. |
|
|
Returns TRUE if value is not equal to every row returned by sub-query. Note: For streaming queries the operation is rewritten in a join and group operation. The required state to compute the query result might grow infinitely depending on the number of distinct input rows. Please provide a query configuration with valid retention interval to prevent excessive state size. See Query Configuration for details. |
| Comparison functions | Description |
|---|---|
|
Returns TRUE if ANY1 is equal to ANY2; returns UNKNOWN if ANY1 or ANY2 is NULL. |
|
|
Returns TRUE if ANY1 is not equal to ANY2; returns UNKNOWN if ANY1 or ANY2 is NULL. |
|
|
Returns TRUE if ANY1 is greater than ANY2; returns UNKNOWN if ANY1 or ANY2 is NULL. |
|
|
Returns TRUE if ANY1 is greater than or equal to ANY2; returns UNKNOWN if ANY1 or ANY2 is NULL. |
|
|
Returns TRUE if ANY1 is less than ANY2; returns UNKNOWN if ANY1 or ANY2 is NULL. |
|
|
Returns TRUE if ANY1 is less than or equal to ANY2; returns UNKNOWN if ANY1 or ANY2 is NULL. |
|
|
Returns TRUE if ANY is NULL. |
|
|
Returns TRUE if ANY is not NULL. |
|
|
Returns TRUE if STRING1 matches pattern STRING2; returns UNKNOWN if STRING1 or STRING2 is NULL. E.g., |
|
|
Returns TRUE if STRING1 matches SQL regular expression STRING2; returns UNKNOWN if STRING1 or STRING2 is NULL. E.g., |
|
|
Returns TRUE if ANY1 exists in a given list (ANY2, ANY3, ...). When (ANY2, ANY3, ...). contains NULL, returns TRUE if the element can be found and UNKNOWN otherwise. Always returns UNKNOWN if ANY1 is NULL. E.g., |
|
|
Returns TRUE if ANY is equal to a row returned by sub-query TABLE. Note: For streaming queries the operation is rewritten in a join and group operation. The required state to compute the query result might grow infinitely depending on the number of distinct input rows. Please provide a query configuration with valid retention interval to prevent excessive state size. See Query Configuration for details. |
|
|
Returns TRUE if ANY1 is greater than or equal to ANY2 and less than or equal to ANY3. When either ANY2 or ANY3 is NULL, returns FALSE or UNKNOWN. E.g., |
|
|
Returns TRUE if ANY1 is less than ANY2 or greater than ANY3. When either ANY2 or ANY3 is NULL, returns TRUE or UNKNOWN. E.g., |
| Comparison functions | Description |
|---|---|
|
Returns TRUE if ANY1 is equal to ANY2; returns UNKNOWN if ANY1 or ANY2 is NULL. |
|
|
Returns TRUE if ANY1 is not equal to ANY2; returns UNKNOWN if ANY1 or ANY2 is NULL. |
|
|
Returns TRUE if ANY1 is greater than ANY2; returns UNKNOWN if ANY1 or ANY2 is NULL. |
|
|
Returns TRUE if ANY1 is greater than or equal to ANY2; returns UNKNOWN if ANY1 or ANY2 is NULL. |
|
|
Returns TRUE if ANY1 is less than ANY2; returns UNKNOWN if ANY1 or ANY2 is NULL. |
|
|
Returns TRUE if ANY1 is less than or equal to ANY2; returns UNKNOWN if ANY1 or ANY2 is NULL. |
|
|
Returns TRUE if ANY is NULL. |
|
|
Returns TRUE if ANY is not NULL. |
|
|
Returns TRUE if STRING1 matches pattern STRING2; returns UNKNOWN if STRING1 or STRING2 is NULL. E.g., |
|
|
Returns TRUE if STRING1 matches SQL regular expression STRING2; returns UNKNOWN if STRING1 or STRING2 is NULL. E.g., |
|
|
Returns TRUE if ANY1 exists in a given list (ANY2, ANY3, ...). When (ANY2, ANY3, ...). contains NULL, returns TRUE if the element can be found and UNKNOWN otherwise. Always returns UNKNOWN if ANY1 is NULL. E.g., |
|
|
Returns TRUE if ANY is equal to a row returned by sub-query TABLE. Note: For streaming queries the operation is rewritten in a join and group operation. The required state to compute the query result might grow infinitely depending on the number of distinct input rows. Please provide a query configuration with valid retention interval to prevent excessive state size. See Query Configuration for details. |
|
|
Returns TRUE if ANY1 is greater than or equal to ANY2 and less than or equal to ANY3. When either ANY2 or ANY3 is NULL, returns FALSE or UNKNOWN. E.g., |
|
|
Returns TRUE if ANY1 is less than ANY2 or greater than ANY3. When either ANY2 or ANY3 is NULL, returns TRUE or UNKNOWN. E.g., |
| Logical functions | Description |
|---|---|
|
Returns TRUE if boolean1 is TRUE or boolean2 is TRUE. Supports three-valued logic. E.g., |
|
|
Returns TRUE if boolean1 and boolean2 are both TRUE. Supports three-valued logic. E.g., |
|
|
Returns TRUE if boolean is FALSE; returns FALSE if boolean is TRUE; returns UNKNOWN if boolean is UNKNOWN. |
|
|
Returns TRUE if boolean is FALSE; returns FALSE if boolean is TRUE or UNKNOWN. |
|
|
Returns TRUE if boolean is TRUE or UNKNOWN; returns FALSE if boolean is FALSE. |
|
|
Returns TRUE if boolean is TRUE; returns FALSE if boolean is FALSE or UNKNOWN. |
|
|
Returns TRUE if boolean is FALSE or UNKNOWN; returns FALSE if boolean is FALSE. |
|
|
Returns TRUE if boolean is UNKNOWN; returns FALSE if boolean is TRUE or FALSE. |
|
|
Returns TRUE if boolean is TRUE or FALSE; returns FALSE if boolean is UNKNOWN. |
| Logical functions | Description |
|---|---|
|
Returns TRUE if BOOLEAN1 is TRUE or BOOLEAN2 is TRUE. Supports three-valued logic. E.g., |
|
|
Returns TRUE if BOOLEAN1 and BOOLEAN2 are both TRUE. Supports three-valued logic. E.g., |
|
|
Returns TRUE if BOOLEAN is FALSE; returns FALSE if BOOLEAN is TRUE; returns UNKNOWN if BOOLEAN is UNKNOWN. |
|
|
Returns TRUE if BOOLEAN is TRUE; returns FALSE if BOOLEAN is FALSE or UNKNOWN. |
|
|
Returns TRUE if BOOLEAN is FALSE; returns FALSE if BOOLEAN is TRUE or UNKNOWN. |
|
|
Returns TRUE if BOOLEAN is FALSE or UNKNOWN; returns FALSE if BOOLEAN is FALSE. |
|
|
Returns TRUE if BOOLEAN is TRUE or UNKNOWN; returns FALSE if BOOLEAN is FALSE. |
| Logical functions | Description |
|---|---|
|
Returns TRUE if BOOLEAN1 is TRUE or BOOLEAN2 is TRUE. Supports three-valued logic. E.g., |
|
|
Returns TRUE if BOOLEAN1 and BOOLEAN2 are both TRUE. Supports three-valued logic. E.g., |
|
|
Returns TRUE if BOOLEAN is FALSE; returns FALSE if BOOLEAN is TRUE; returns UNKNOWN if BOOLEAN is UNKNOWN. |
|
|
Returns TRUE if BOOLEAN is TRUE; returns FALSE if BOOLEAN is FALSE or UNKNOWN. |
|
|
Returns TRUE if BOOLEAN is FALSE; returns FALSE if BOOLEAN is TRUE or UNKNOWN. |
|
|
Returns TRUE if BOOLEAN is FALSE or UNKNOWN; returns FALSE if BOOLEAN is FALSE. |
|
|
Returns TRUE if BOOLEAN is TRUE or UNKNOWN; returns FALSE if BOOLEAN is FALSE. |
| Arithmetic functions | Description |
|---|---|
|
Returns numeric. |
|
|
Returns negative numeric. |
|
|
Returns numeric1 plus numeric2. |
|
|
Returns numeric1 minus numeric2. |
|
|
Returns numeric1 multiplied by numeric2. |
|
|
Returns numeric1 divided by numeric2. |
|
|
Returns numeric1 raised to the power of numeric2. |
|
|
Returns the absolute value of numeric. |
|
|
Returns the remainder (modulus) of numeric1 divided by numeric2. The result is negative only if numeric1 is negative. |
|
|
Returns the square root of numeric. |
|
|
Returns the natural logarithm (base e) of numeric. |
|
|
Returns the base 10 logarithm of numeric. |
|
|
Returns the base 2 logarithm of numeric. |
|
|
When called with one argument, returns the natural logarithm of numeric2. When called with two arguments, this function returns the logarithm of numeric2 to the base numeric1. Note: Currently, numeric2 must be greater than 0 and numeric1 must be greater than 1. |
|
|
Returns e raised to the power of numeric. |
|
|
Rounds numeric up, and returns the smallest number that is greater than or equal to numeric. |
|
|
Rounds numeric down, and returns the largest number that is less than or equal to numeric. |
|
|
Returns the sine of numeric. |
|
|
Returns the hyperbolic sine of numeric. The return type is DOUBLE. |
|
|
Returns the cosine of numeric. |
|
|
Returns the tangent of numeric. |
|
|
Returns the hyperbolic tangent of numeric. The return type is DOUBLE. |
|
|
Returns the cotangent of a numeric. |
|
|
Returns the arc sine of numeric. |
|
|
Returns the arc cosine of numeric. |
|
|
Returns the arc tangent of numeric. |
|
|
Returns the arc tangent of a coordinate (numeric1, numeric2). |
|
|
Returns the hyperbolic cosine of NUMERIC. Return value type is DOUBLE. |
|
|
Returns the degree representation of a radian numeric. |
|
|
Returns the radian representation of a degree numeric. |
|
|
Returns the signum of numeric. |
|
|
Returns a number rounded to integer decimal places for numeric. |
|
|
Returns a value that is closer than any other values to pi. |
|
|
Returns a value that is closer than any other values to e. |
|
|
Returns a pseudorandom double value between 0.0 (inclusive) and 1.0 (exclusive). |
|
|
Returns a pseudorandom double value between 0.0 (inclusive) and 1.0 (exclusive) with an initial seed integer. Two RAND functions will return identical sequences of numbers if they have the same initial seed. |
|
|
Returns a pseudorandom integer value between 0 (inclusive) and integer (exclusive). |
|
|
Returns a pseudorandom integer value between 0 (inclusive) and the specified value (exclusive) with an initial seed. Two RAND_INTEGER functions will return identical sequences of numbers if they have the same initial seed and bound. |
|
|
Returns an UUID (Universally Unique Identifier) string (e.g., "3d3c68f7-f608-473f-b60c-b0c44ad4cc4e") according to RFC 4122 type 4 (pseudo randomly generated) UUID. The UUID is generated using a cryptographically strong pseudo random number generator. |
|
|
Returns a string representation of integer in binary format. Returns NULL if integer is NULL. E.g. |
|
|
Returns a string representation of an integer numeric value or a string in hex format. Returns NULL if the argument is NULL. E.g. a numeric 20 leads to "14", a numeric 100 leads to "64", a string "hello,world" leads to "68656C6C6F2C776F726C64". |
| Arithmetic functions | Description |
|---|---|
|
Returns NUMERIC. |
|
|
Returns negative NUMERIC. |
|
|
Returns NUMERIC1 plus NUMERIC2. |
|
|
Returns NUMERIC1 minus NUMERIC2. |
|
|
Returns NUMERIC1 multiplied by NUMERIC2. |
|
|
Returns NUMERIC1 divided by NUMERIC2. |
|
|
Returns NUMERIC1 raised to the power of NUMERIC2. |
|
|
Returns the absolute value of NUMERIC. |
|
|
Returns the remainder (modulus) of NUMERIC1 divided by NUMERIC2. The result is negative only if numeric1 is negative. |
|
|
Returns the square root of NUMERIC. |
|
|
Returns the natural logarithm (base e) of NUMERIC. |
|
|
Returns the base 10 logarithm of NUMERIC. |
|
|
Returns the base 2 logarithm of NUMERIC. |
|
|
When called without argument, returns the natural logarithm of NUMERIC1. When called with an argument, returns the logarithm of NUMERIC1 to the base NUMERIC2. Note: Currently, NUMERIC1 must be greater than 0 and NUMERIC2 must be greater than 1. |
|
|
Returns e raised to the power of NUMERIC. |
|
|
Rounds NUMERIC up, and returns the smallest number that is greater than or equal to NUMERIC. |
|
|
Rounds NUMERIC down, and returns the largest number that is less than or equal to NUMERIC. |
|
|
Returns the sine of NUMERIC. |
|
|
Returns the hyperbolic sine of NUMERIC. The return type is DOUBLE. |
|
|
Returns the cosine of NUMERIC. |
|
|
Returns the tangent of NUMERIC. |
|
|
Returns the hyperbolic tangent of NUMERIC. The return type is DOUBLE. |
|
|
Returns the cotangent of a NUMERIC. |
|
|
Returns the arc sine of NUMERIC. |
|
|
Returns the arc cosine of NUMERIC. |
|
|
Returns the arc tangent of NUMERIC. |
|
|
Returns the arc tangent of a coordinate (NUMERIC1, NUMERIC2). |
|
|
Returns the hyperbolic cosine of NUMERIC. Return value type is DOUBLE. |
|
|
Returns the degree representation of a radian NUMERIC. |
|
|
Returns the radian representation of a degree NUMERIC. |
|
|
Returns the signum of NUMERIC. |
|
|
Returns a number rounded to INT decimal places for NUMERIC. |
|
|
Returns a value that is closer than any other values to pi. |
|
|
Returns a value that is closer than any other values to e. |
|
|
Returns a pseudorandom double value between 0.0 (inclusive) and 1.0 (exclusive). |
|
|
Returns a pseudorandom double value between 0.0 (inclusive) and 1.0 (exclusive) with an initial seed INTEGER. Two RAND functions will return identical sequences of numbers if they have the same initial seed. |
|
|
Returns a pseudorandom integer value between 0 (inclusive) and INTEGER (exclusive). |
|
|
Returns a pseudorandom integer value between 0 (inclusive) and INTEGER2 (exclusive) with an initial seed INTEGER1. Two randInteger functions will return identical sequences of numbers if they have same initial seed and bound. |
|
|
Returns an UUID (Universally Unique Identifier) string (e.g., "3d3c68f7-f608-473f-b60c-b0c44ad4cc4e") according to RFC 4122 type 4 (pseudo randomly generated) UUID. The UUID is generated using a cryptographically strong pseudo random number generator. |
|
|
Returns a string representation of INTEGER in binary format. Returns NULL if INTEGER is NULL. E.g., |
|
|
Returns a string representation of an integer NUMERIC value or a STRING in hex format. Returns NULL if the argument is NULL. E.g. a numeric 20 leads to "14", a numeric 100 leads to "64", a string "hello,world" leads to "68656C6C6F2C776F726C64". |
| Arithmetic functions | Description |
|---|---|
|
Returns NUMERIC. |
|
|
Returns negative NUMERIC. |
|
|
Returns NUMERIC1 plus NUMERIC2. |
|
|
Returns NUMERIC1 minus NUMERIC2. |
|
|
Returns NUMERIC1 multiplied by NUMERIC2. |
|
|
Returns NUMERIC1 divided by NUMERIC2. |
|
|
Returns NUMERIC1 raised to the power of NUMERIC2. |
|
|
Returns the absolute value of NUMERIC. |
|
|
Returns the remainder (modulus) of NUMERIC1 divided by NUMERIC2. The result is negative only if numeric1 is negative. |
|
|
Returns the square root of NUMERIC. |
|
|
Returns the natural logarithm (base e) of NUMERIC. |
|
|
Returns the base 10 logarithm of NUMERIC. |
|
|
Returns the base 2 logarithm of NUMERIC. |
|
|
When called without argument, returns the natural logarithm of NUMERIC1. When called with an argument, returns the logarithm of NUMERIC1 to the base NUMERIC2. Note: Currently, NUMERIC1 must be greater than 0 and NUMERIC2 must be greater than 1. |
|
|
Returns e raised to the power of NUMERIC. |
|
|
Rounds NUMERIC up, and returns the smallest number that is greater than or equal to NUMERIC. |
|
|
Rounds NUMERIC down, and returns the largest number that is less than or equal to NUMERIC. |
|
|
Returns the sine of NUMERIC. |
|
|
Returns the hyperbolic sine of NUMERIC. The return type is DOUBLE. |
|
|
Returns the cosine of NUMERIC. |
|
|
Returns the tangent of NUMERIC. |
|
|
Returns the hyperbolic tangent of NUMERIC. The return type is DOUBLE. |
|
|
Returns the cotangent of a NUMERIC. |
|
|
Returns the arc sine of NUMERIC. |
|
|
Returns the arc cosine of NUMERIC. |
|
|
Returns the arc tangent of NUMERIC. |
|
|
Returns the arc tangent of a coordinate (NUMERIC1, NUMERIC2). |
|
|
Returns the hyperbolic cosine of NUMERIC. Return value type is DOUBLE. |
|
|
Returns the degree representation of a radian NUMERIC. |
|
|
Returns the radian representation of a degree NUMERIC. |
|
|
Returns the signum of NUMERIC. |
|
|
Returns a number rounded to INT decimal places for NUMERIC. |
|
|
Returns a value that is closer than any other values to pi. |
|
|
Returns a value that is closer than any other values to e. |
|
|
Returns a pseudorandom double value between 0.0 (inclusive) and 1.0 (exclusive). |
|
|
Returns a pseudorandom double value between 0.0 (inclusive) and 1.0 (exclusive) with an initial seed INTEGER. Two RAND functions will return identical sequences of numbers if they have the same initial seed. |
|
|
Returns a pseudorandom integer value between 0 (inclusive) and INTEGER (exclusive). |
|
|
Returns a pseudorandom integer value between 0 (inclusive) and INTEGER2 (exclusive) with an initial seed INTEGER1. Two randInteger functions will return identical sequences of numbers if they have same initial seed and bound. |
|
|
Returns an UUID (Universally Unique Identifier) string (e.g., "3d3c68f7-f608-473f-b60c-b0c44ad4cc4e") according to RFC 4122 type 4 (pseudo randomly generated) UUID. The UUID is generated using a cryptographically strong pseudo random number generator. |
|
|
Returns a string representation of INTEGER in binary format. Returns NULL if INTEGER is NULL. E.g., |
|
|
Returns a string representation of an integer NUMERIC value or a STRING in hex format. Returns NULL if the argument is NULL. E.g. a numeric 20 leads to "14", a numeric 100 leads to "64", a string "hello,world" leads to "68656C6C6F2C776F726C64". |
| String functions | Description |
|---|---|
|
Returns the concatenation of string1 and string2. |
|
|
Returns the number of characters in string. |
|
|
Returns string in uppercase. |
|
|
Returns string in lowercase. |
|
|
Returns the position (start from 1) of the first occurrence of string1 in string2; returns 0 if string1 cannot be found in string2. |
|
|
Returns a string that removes leading and/or trailing characters string1 from string2. By default, whitespaces at both sides are removed. |
|
|
Returns a string that removes the left whitespaces from string. E.g., |
|
|
Returns a string that removes the right whitespaces from string. E.g., |
|
|
Returns a string that repeats the base string integer times. E.g., |
|
|
Returns a string from string1 with all the substrings that match a regular expression string2 consecutively being replaced with string3. E.g., |
|
|
Returns a string that replaces integer2 (string2's length by default) characters of string1 with string2 from position integer1. E.g., |
|
|
Returns a substring of string starting from position integer1 with length integer2 (to the end by default). |
|
|
Returns a new string which replaces all the occurrences of string2 with string3 (non-overlapping) from string1 E.g., |
|
|
Returns a string from string1 which extracted with a specified regular expression string2 and a regex match group index integer. Note: The regex match group index starts from 1 and 0 means matching the whole regex. In addition, the regex match group index should not exceed the number of the defined groups. E.g. |
|
|
Returns a new form of string with the first character of each word converted to uppercase and the rest characters to lowercase. Here a word means a sequences of alphanumeric characters. |
|
|
Returns a string that concatenates string1, string2, .... Returns NULL if any argument is NULL. E.g., |
|
|
Returns a string that concatenates string2, string3, ... with a separator string1. The separator is added between the strings to be concatenated. Returns NULL If string1 is NULL. Compared with E.g., |
|
|
Returns a new string from string1 left-padded with string2 to a length of integer characters. If the length of string1 is shorter than integer, returns string1 shortened to integer characters. E.g., |
|
|
Returns a new string from string1 right-padded with string2 to a length of integer characters. If the length of string1 is shorter than integer, returns string1 shortened to integer characters. E.g., |
|
|
Returns the base64-decoded result from string; returns NULL if string is NULL. E.g., |
|
|
Returns the base64-encoded result from string; returns NULL if string is NULL. E.g., |
| String functions | Description |
|---|---|
|
Returns the concatenation of STRING1 and STRING2. |
|
|
Returns the number of characters in STRING. |
|
|
Returns STRING in uppercase. |
|
|
Returns STRING in lowercase. |
|
|
Returns the position (start from 1) of the first occurrence of STRING1 in STRING2; returns 0 if STRING1 cannot be found in STRING2. |
|
|
Returns a string that removes leading and/or trailing characters STRING2 from STRING1. By default, whitespaces at both sides are removed. |
|
|
Returns a string that removes the left whitespaces from STRING. E.g., |
|
|
Returns a string that removes the right whitespaces from STRING. E.g., |
|
|
Returns a string that repeats the base STRING INT times. E.g., |
|
|
Returns a string from STRING1 with all the substrings that match a regular expression STRING2 consecutively being replaced with STRING3. E.g., |
|
|
Returns a string that replaces INT2 (STRING2's length by default) characters of STRING1 with STRING2 from position INT1. E.g., |
|
|
Returns a substring of STRING starting from position INT1 with length INT2 (to the end by default). |
|
|
Returns a new string which replaces all the occurrences of STRING2 with STRING3 (non-overlapping) from STRING1. E.g., |
|
|
Returns a string from STRING1 which extracted with a specified regular expression STRING2 and a regex match group index INTEGER1. Note: The regex match group index starts from 1 and 0 means matching the whole regex. In addition, the regex match group index should not exceed the number of the defined groups. E.g. |
|
|
Returns a new form of STRING with the first character of each word converted to uppercase and the rest characters to lowercase. Here a word means a sequences of alphanumeric characters. |
|
|
Returns a string that concatenates STRING1, STRING2, .... Returns NULL if any argument is NULL. E.g., |
|
|
Returns a string that concatenates STRING2, STRING3, ... with a separator STRING1. The separator is added between the strings to be concatenated. Returns NULL If STRING1 is NULL. Compared with E.g., |
|
|
Returns a new string from STRING1 left-padded with STRING2 to a length of INT characters. If the length of STRING1 is shorter than INT, returns STRING1 shortened to INT characters. E.g., |
|
|
Returns a new string from STRING1 right-padded with STRING2 to a length of INT characters. If the length of STRING1 is shorter than INT, returns STRING1 shortened to INT characters. E.g., |
|
|
Returns the base64-decoded result from STRING; returns NULL if STRING is NULL. E.g., |
|
|
Returns the base64-encoded result from STRING; returns NULL if STRING is NULL. E.g., |
| String functions | Description |
|---|---|
|
Returns the concatenation of STRING1 and STRING2. |
|
|
Returns the number of characters in STRING. |
|
|
Returns STRING in uppercase. |
|
|
Returns STRING in lowercase. |
|
|
Returns the position (start from 1) of the first occurrence of STRING1 in STRING2; returns 0 if STRING1 cannot be found in STRING2. |
|
|
Returns a string that removes leading and/or trailing characters from STRING. |
|
|
Returns a string that removes the left whitespaces from STRING. E.g., |
|
|
Returns a string that removes the right whitespaces from STRING. E.g., |
|
|
Returns a string that repeats the base STRING INT times. E.g., |
|
|
Returns a string from STRING1 with all the substrings that match a regular expression STRING2 consecutively being replaced with STRING3. E.g. |
|
|
Returns a string that replaces INT2 (STRING2's length by default) characters of STRING1 with STRING2 from position INT1. E.g., |
|
|
Returns a substring of STRING starting from position INT1 with length INT2 (to the end by default). |
|
|
Returns a new string which replaces all the occurrences of STRING2 with STRING3 (non-overlapping) from STRING1. E.g., |
|
|
Returns a string from STRING1 which extracted with a specified regular expression STRING2 and a regex match group index INTEGER1. Note: The regex match group index starts from 1 and 0 means matching the whole regex. In addition, the regex match group index should not exceed the number of the defined groups. E.g. |
|
|
Returns a new form of STRING with the first character of each word converted to uppercase and the rest characters to lowercase. Here a word means a sequences of alphanumeric characters. |
|
|
Returns a string that concatenates STRING1, STRING2, .... Returns NULL if any argument is NULL. E.g., |
|
|
Returns a string that concatenates STRING2, STRING3, ... with a separator STRING1. The separator is added between the strings to be concatenated. Returns NULL If STRING1 is NULL. Compared with E.g., |
|
|
Returns a new string from STRING1 left-padded with STRING2 to a length of INT characters. If the length of STRING1 is shorter than INT, returns STRING1 shortened to INT characters. E.g., |
|
|
Returns a new string from STRING1 right-padded with STRING2 to a length of INT characters. If the length of STRING1 is shorter than INT, returns STRING1 shortened to INT characters. E.g., |
|
|
Returns the base64-decoded result from STRING; returns null If STRING is NULL. E.g., |
|
|
Returns the base64-encoded result from STRING; returns NULL if STRING is NULL. E.g., |
| Temporal functions | Description |
|---|---|
|
Returns a SQL date parsed from string in form of "yyyy-MM-dd". |
|
|
Returns a SQL time parsed from string in form of "HH:mm:ss". |
|
|
Returns a SQL timestamp parsed from string in form of "yyyy-MM-dd HH:mm:ss[.SSS]". |
|
|
Parses an interval string in the form "dd hh:mm:ss.fff" for SQL intervals of milliseconds or "yyyy-mm" for SQL intervals of months. An interval range might be E.g., |
|
|
Returns the current SQL date in the UTC time zone. |
|
|
Returns the current SQL time in the UTC time zone. |
|
|
Returns the current SQL timestamp in the UTC time zone. |
|
|
Returns the current SQL time in local time zone. |
|
|
Returns the current SQL timestamp in local time zone. |
|
|
Returns a long value extracted from the timeintervalunit part of temporal. E.g., |
|
|
Returns the year from SQL date date. Equivalent to EXTRACT(YEAR FROM date). E.g., |
|
|
Returns the quarter of a year (an integer between 1 and 4) from SQL date date. Equivalent to E.g., |
|
|
Returns the month of a year (an integer between 1 and 12) from SQL date date. Equivalent to E.g., |
|
|
Returns the week of a year (an integer between 1 and 53) from SQL date date. Equivalent to E.g., |
|
|
Returns the day of a year (an integer between 1 and 366) from SQL date date. Equivalent to E.g., |
|
|
Returns the day of a month (an integer between 1 and 31) from SQL date date. Equivalent to E.g., |
|
|
Returns the day of a week (an integer between 1 and 7; Sunday = 1) from SQL date date.Equivalent to E.g., |
|
|
Returns the hour of a day (an integer between 0 and 23) from SQL timestamp timestamp. Equivalent to E.g., |
|
|
Returns the minute of an hour (an integer between 0 and 59) from SQL timestamp timestamp. Equivalent to E.g., |
|
|
Returns the second of a minute (an integer between 0 and 59) from SQL timestamp. Equivalent to E.g., |
|
|
Returns a value that rounds timepoint down to the time unit timeintervalunit. E.g., |
|
|
Returns a value that rounds timepoint up to the time unit timeintervalunit. E.g., |
|
|
Returns TRUE if two time intervals defined by (timepoint1, temporal1) and (timepoint2, temporal2) overlap. The temporal values could be either a time point or a time interval. E.g., |
|
|
Attention This function has serious bugs and should not be used for now. Please implement a custom UDF instead or use EXTRACT as a workaround. |
|
|
Returns a new time value that adds a (signed) integer interval to timepoint. The unit for interval is given by the unit argument, which should be one of the following values: E.g., |
|
|
Returns the (signed) number of timepointunit between timepoint1 and timepoint2. The unit for the interval is given by the first argument, which should be one of the following values: E.g., |
| Temporal functions | Description |
|---|---|
|
Returns a SQL date parsed from STRING in form of "yyyy-MM-dd". |
|
|
Returns a SQL time parsed from STRING in form of "HH:mm:ss". |
|
|
Returns a SQL timestamp parsed from STRING in form of "yyyy-MM-dd HH:mm:ss[.SSS]". |
|
|
Creates an interval of months for NUMERIC years. |
|
|
Creates an interval of months for NUMERIC quarters. E.g., |
|
|
Creates an interval of NUMERIC months. |
|
|
Creates an interval of milliseconds for NUMERIC weeks. E.g., |
|
|
Creates an interval of milliseconds for NUMERIC days. |
|
|
Creates an interval of milliseconds for NUMERIC hours. |
|
|
Creates an interval of milliseconds for NUMERIC minutes. |
|
|
Creates an interval of milliseconds for NUMERIC seconds. |
|
|
Creates an interval of NUMERIC milliseconds. |
|
|
Returns the current SQL date in the UTC time zone. |
|
|
Returns the current SQL time in the UTC time zone. |
|
|
Returns the current SQL timestamp in the UTC time zone. |
|
|
Returns the current SQL time in local time zone. |
|
|
Returns the current SQL timestamp in local time zone. |
|
|
Returns a long value extracted from the TIMEINTERVALUNIT part of temporal. E.g., |
|
|
Returns a value that rounds TIMEPOINT down to the time unit TIMEINTERVALUNIT. E.g., |
|
|
Returns a value that rounds TIMEPOINT up to the time unit TIMEINTERVALUNIT. E.g., |
|
|
Returns TRUE if two time intervals defined by (TIMEPOINT1, TEMPORAL1) and (TIMEPOINT2, TEMPORAL2) overlap. The temporal values could be either a time point or a time interval. E.g., |
|
|
Attention This function has serious bugs and should not be used for now. Please implement a custom UDF instead or use extract() as a workaround. |
|
|
Returns the (signed) number of TIMEPOINTUNIT between TIMEPOINT1 and TIMEPOINT2. The unit for the interval is given by the first argument, which should be one of the following values: E.g., |
| Temporal functions | Description |
|---|---|
|
Returns a SQL date parsed from STRING in form of "yyyy-MM-dd". |
|
|
Returns a SQL time parsed from STRING in form of "HH:mm:ss". |
|
|
Returns a SQL timestamp parsed from STRING in form of "yyyy-MM-dd HH:mm:ss[.SSS]". |
|
|
Creates an interval of months for NUMERIC years. |
|
|
Creates an interval of months for NUMERIC quarters. E.g., |
|
|
Creates an interval of NUMERIC months. |
|
|
Creates an interval of milliseconds for NUMERIC weeks. E.g., |
|
|
Creates an interval of milliseconds for NUMERIC days. |
|
|
Creates an interval of milliseconds for NUMERIC hours. |
|
|
Creates an interval of milliseconds for NUMERIC minutes. |
|
|
Creates an interval of milliseconds for NUMERIC seconds. |
|
|
Creates an interval of NUMERIC milliseconds. |
|
|
Returns the current SQL date in the UTC time zone. |
|
|
Returns the current SQL time in the UTC time zone. |
|
|
Returns the current SQL timestamp in the UTC time zone. |
|
|
Returns the current SQL time in local time zone. |
|
|
Returns the current SQL timestamp in local time zone. |
|
|
Returns a long value extracted from the TIMEINTERVALUNIT part of temporal. E.g., |
|
|
Returns a value that rounds TIMEPOINT down to the time unit TIMEINTERVALUNIT. E.g., |
|
|
Returns a value that rounds TIMEPOINT up to the time unit TIMEINTERVALUNIT. E.g., |
|
|
Returns TRUE if two time intervals defined by (TIMEPOINT1, TEMPORAL1) and (TIMEPOINT2, TEMPORAL2) overlap. The temporal values could be either a time point or a time interval. E.g., |
|
|
Attention This function has serious bugs and should not be used for now. Please implement a custom UDF instead or use extract() as a workaround. |
|
|
Returns the (signed) number of TIMEPOINTUNIT between TIMEPOINT1 and TIMEPOINT2. The unit for the interval is given by the first argument, which should be one of the following values: E.g., |
| Conditional functions | Description |
|---|---|
|
Returns resultX when the first time value is contained in (valueX_1, valueX_2, ...). When no value matches, returns resultZ if it is provided and returns NULL otherwise. |
|
|
Returns resultX when the first conditionX is met. When no condition is met, returns resultZ if it is provided and returns NULL otherwise. |
|
|
Returns NULL if value1 is equal to value2; returns value1 otherwise. E.g., |
|
|
Returns the first value that is not NULL from value1, value2, .... E.g., |
| Conditional functions | Description |
|---|---|
|
Returns VALUE1 if BOOLEAN evaluates to TRUE; returns VALUE2 otherwise. E.g., |
| Conditional functions | Description |
|---|---|
|
Returns VALUE1 if BOOLEAN evaluates to TRUE; returns VALUE2 otherwise. E.g., |
| Type conversion functions | Description |
|---|---|
|
Returns a new value being cast to type type. See the supported types here. E.g., |
| Type conversion functions | Description |
|---|---|
|
Returns a new ANY being cast to type TYPE. See the supported types here. E.g., |
| Type conversion functions | Description |
|---|---|
|
Returns a new ANY being cast to type TYPE. See the supported types here. E.g., |
| Collection functions | Description |
|---|---|
|
Returns the number of elements in array. |
|
|
Returns the element at position integer in array. The index starts from 1. |
|
|
Returns the sole element of array (whose cardinality should be one); returns NULL if array is empty. Throws an exception if array has more than one element. |
|
|
Returns the number of entries in map. |
|
|
Returns the value specified by key value in map. |
| Collection functions | Description |
|---|---|
|
Returns the number of elements in ARRAY. |
|
|
Returns the element at position INT in ARRAY. The index starts from 1. |
|
|
Returns the sole element of ARRAY (whose cardinality should be one); returns NULL if ARRAY is empty. Throws an exception if ARRAY has more than one element. |
|
|
Returns the number of entries in MAP. |
|
|
Returns the value specified by key ANY in MAP. |
| Collection functions | Description |
|---|---|
|
Returns the number of elements in ARRAY. |
|
|
Returns the element at position INT in ARRAY. The index starts from 1. |
|
|
Returns the sole element of ARRAY (whose cardinality should be one); returns NULL if ARRAY is empty. Throws an exception if ARRAY has more than one element. |
|
|
Returns the number of entries in MAP. |
|
|
Returns the value specified by key ANY in MAP. |
| Value construction functions | Description |
|---|---|
|
Returns a row created from a list of values (value1, value2,...). |
|
|
Returns an array created from a list of values (value1, value2, ...). |
|
|
Returns a map created from a list of key-value pairs ((value1, value2), (value3, value4), ...). |
| Value constructor functions | Description |
|---|---|
|
Returns a row created from a list of object values (ANY1, ANY2, ...). Row is composite type that can be access via value access functions. |
|
|
Returns an array created from a list of object values (ANY1, ANY2, ...). |
|
|
Returns a map created from a list of key-value pairs ((ANY1, ANY2), (ANY3, ANY4), ...). |
|
|
Creates a NUMERIC interval of rows (commonly used in window creation). |
| Value constructor functions | Description |
|---|---|
|
Returns a row created from a list of object values (ANY1, ANY2, ...). Row is composite type that can be access via value access functions. |
|
|
Returns an array created from a list of object values (ANY1, ANY2, ...). |
|
|
Returns a map created from a list of key-value pairs ((ANY1, ANY2), (ANY3, ANY4), ...). |
|
|
Creates a NUMERIC interval of rows (commonly used in window creation). |
| Value access functions | Description |
|---|---|
|
Returns the value of a field from a Flink composite type (e.g., Tuple, POJO) by name. |
|
|
Returns a flat representation of a Flink composite type (e.g., Tuple, POJO) that converts each of its direct subtype into a separate field.
In most cases the fields of the flat representation are named similarly to the original fields but with a dollar separator (e.g., |
| Value access functions | Description |
|---|---|
|
Returns the value of a field from a Flink composite type (e.g., Tuple, POJO) by name or index. E.g., |
|
|
Returns a flat representation of a Flink composite type (e.g., Tuple, POJO) that converts each of its direct subtype into a separate field.
In most cases the fields of the flat representation are named similarly to the original fields but with a dollar separator (e.g., |
| Value access functions | Description |
|---|---|
|
Returns the value of a field from a Flink composite type (e.g., Tuple, POJO) by name or index. E.g., |
|
|
Returns a flat representation of a Flink composite type (e.g., Tuple, POJO) that converts each of its direct subtype into a separate field.
In most cases the fields of the flat representation are named similarly to the original fields but with a dollar separator (e.g., |
| Grouping functions | Description |
|---|---|
|
Returns an integer that uniquely identifies the combination of grouping keys. |
|
|
Returns a bit vector of the given grouping expressions. |
| Grouping functions | Description |
|---|
| Grouping functions | Description |
|---|
| Hash functions | Description |
|---|---|
|
Returns the MD5 hash of string as a string of 32 hexadecimal digits; returns NULL if string is NULL. |
|
|
Returns the SHA-1 hash of string as a string of 40 hexadecimal digits; returns NULL if string is NULL. |
|
|
Returns the SHA-224 hash of string as a string of 56 hexadecimal digits; returns NULL if string is NULL. |
|
|
Returns the SHA-256 hash of string as a string of 64 hexadecimal digits; returns NULL if string is NULL. |
|
|
Returns the SHA-384 hash of string as a string of 96 hexadecimal digits; returns NULL if string is NULL. |
|
|
Returns the SHA-512 hash of string as a string of 128 hexadecimal digits; returns NULL if string is NULL. |
|
|
Returns the hash using the SHA-2 family of hash functions (SHA-224, SHA-256, SHA-384, or SHA-512). The first argument string is the string to be hashed and the second argument hashLength is the bit length of the result (224, 256, 384, or 512). Returns NULL if string or hashLength is NULL. |
| Hash functions | Description |
|---|---|
|
Returns the MD5 hash of STRING as a string of 32 hexadecimal digits; returns NULL if STRING is NULL. |
|
|
Returns the SHA-1 hash of STRING as a string of 40 hexadecimal digits; returns NULL if STRING is NULL. |
|
|
Returns the SHA-224 hash of STRING as a string of 56 hexadecimal digits; returns NULL if STRING is NULL. |
|
|
Returns the SHA-256 hash of STRING as a string of 64 hexadecimal digits; returns NULL if STRING is NULL. |
|
|
Returns the SHA-384 hash of STRING as a string of 96 hexadecimal digits; returns NULL if STRING is NULL. |
|
|
Returns the SHA-512 hash of STRING as a string of 128 hexadecimal digits; returns NULL if STRING is NULL. |
|
|
Returns the SHA-2 family (SHA-224, SHA-256, SHA-384, or SHA-512) hashed value specified by INT (which could be 224, 256, 384, or 512) for STRING. Returns NULL if STRING or INT is NULL. |
| Hash functions | Description |
|---|---|
|
Returns the MD5 hash of STRING as a string of 32 hexadecimal digits; returns NULL if STRING is NULL. |
|
|
Returns the SHA-1 hash of STRING as a string of 40 hexadecimal digits; returns NULL if STRING is NULL. |
|
|
Returns the SHA-224 hash of STRING as a string of 56 hexadecimal digits; returns NULL if STRING is NULL. |
|
|
Returns the SHA-256 hash of STRING as a string of 64 hexadecimal digits; returns NULL if STRING is NULL. |
|
|
Returns the SHA-384 hash of STRING as a string of 96 hexadecimal digits; returns NULL if STRING is NULL. |
|
|
Returns the SHA-512 hash of STRING as a string of 128 hexadecimal digits; returns NULL if STRING is NULL. |
|
|
Returns the SHA-2 family (SHA-224, SHA-256, SHA-384, or SHA-512) hashed value specified by INT (which could be 224, 256, 384, or 512) for STRING. Returns NULL if STRING or INT is NULL. |
| Auxiliary functions | Description |
|---|
| Auxiliary functions | Description |
|---|---|
|
Specifies a name for ANY (a field). Additional names can be specified if the expression expands to multiple fields. |
| Auxiliary functions | Description |
|---|---|
|
Specifies a name for ANY (a field). Additional names can be specified if the expression expands to multiple fields. |
The aggregate functions take an expression across all the rows as the input and return a single aggregated value as the result.
| Aggregate functions | Description |
|---|---|
|
By default or with ALL, returns the number of input rows for which expression is not NULL. Use DISTINCT for one unique instance of each value. |
|
|
Returns the number of input rows. |
|
|
By default or with keyword ALL, returns the average (arithmetic mean) of expression across all input rows. Use DISTINCT for one unique instance of each value. |
|
|
By default or with keyword ALL, returns the sum of expression across all input rows. Use DISTINCT for one unique instance of each value. |
|
|
By default or with keyword ALL, returns the maximum value of expression across all input rows. Use DISTINCT for one unique instance of each value. |
|
|
By default or with keyword ALL, returns the minimum value of expression across all input rows. Use DISTINCT for one unique instance of each value. |
|
|
By default or with keyword ALL, returns the population standard deviation of expression across all input rows. Use DISTINCT for one unique instance of each value. |
|
|
By default or with keyword ALL, returns the sample standard deviation of expression across all input rows. Use DISTINCT for one unique instance of each value. |
|
|
By default or with keyword ALL, returns the population variance (square of the population standard deviation) of expression across all input rows. Use DISTINCT for one unique instance of each value. |
|
|
By default or with keyword ALL, returns the sample variance (square of the sample standard deviation) of expression across all input rows. Use DISTINCT for one unique instance of each value. |
|
|
By default or with keyword ALL, returns a multiset of expression across all input rows. NULL values will be ignored. Use DISTINCT for one unique instance of each value. |
| Aggregate functions | Description |
|---|---|
|
Returns the number of input rows for which FIELD is not NULL. |
|
|
Returns the average (arithmetic mean) of FIELD across all input rows. |
|
|
Returns the sum of numeric field FIELD across all input rows. If all values are NULL, returns NULL. |
|
|
Returns the sum of numeric field FIELD across all input rows. If all values are NULL, returns 0. |
|
|
Returns the maximum value of numeric field FIELD across all input rows. |
|
|
Returns the minimum value of numeric field FIELD across all input rows. |
|
|
Returns the population standard deviation of numeric field FIELD across all input rows. |
|
|
Returns the sample standard deviation of numeric field FIELD across all input rows. |
|
|
Returns the population variance (square of the population standard deviation) of numeric field FIELD across all input rows. |
|
|
Returns the sample variance (square of the sample standard deviation) of numeric field FIELD across all input rows. |
|
|
Returns a multiset of FIELD across all input rows. |
| Aggregate functions | Description |
|---|---|
|
Returns the number of input rows for which FIELD is not NULL. |
|
|
Returns the average (arithmetic mean) of FIELD across all input rows. |
|
|
Returns the sum of numeric field FIELD across all input rows. If all values are NULL, returns NULL. |
|
|
Returns the sum of numeric field FIELD across all input rows. If all values are NULL, returns 0. |
|
|
Returns the maximum value of numeric field FIELD across all input rows. |
|
|
Returns the minimum value of numeric field FIELD across all input rows. |
|
|
Returns the population standard deviation of numeric field FIELD across all input rows. |
|
|
Returns the sample standard deviation of numeric field FIELD across all input rows. |
|
|
Returns the population variance (square of the population standard deviation) of numeric field FIELD across all input rows. |
|
|
Returns the sample variance (square of the sample standard deviation) of numeric field FIELD across all input rows. |
|
|
Returns a multiset of FIELD across all input rows. |
The following table lists specifiers for date format functions.
| Specifier | Description |
|---|---|
Abbreviated weekday name (Sun .. Sat ) |
|
Abbreviated month name (Jan .. Dec ) |
|
Month, numeric (1 .. 12 ) |
|
Day of the month with English suffix (0th , 1st , 2nd , 3rd , ...) |
|
Day of the month, numeric (01 .. 31 ) |
|
Day of the month, numeric (1 .. 31 ) |
|
Fraction of second (6 digits for printing: 000000 .. 999000 ; 1 - 9 digits for parsing: 0 .. 999999999 ) (Timestamp is truncated to milliseconds.) |
|
Hour (00 .. 23 ) |
|
Hour (01 .. 12 ) |
|
Hour (01 .. 12 ) |
|
Minutes, numeric (00 .. 59 ) |
|
Day of year (001 .. 366 ) |
|
Hour (0 .. 23 ) |
|
Hour (1 .. 12 ) |
|
Month name (January .. December ) |
|
Month, numeric (01 .. 12 ) |
|
AM or PM |
|
Time, 12-hour (hh:mm:ss followed by AM or PM ) |
|
Seconds (00 .. 59 ) |
|
Seconds (00 .. 59 ) |
|
Time, 24-hour (hh:mm:ss ) |
|
Week (00 .. 53 ), where Sunday is the first day of the week |
|
Week (00 .. 53 ), where Monday is the first day of the week |
|
Week (01 .. 53 ), where Sunday is the first day of the week; used with %X |
|
Week (01 .. 53 ), where Monday is the first day of the week; used with %x |
|
Weekday name (Sunday .. Saturday ) |
|
Day of the week (0 .. 6 ), where Sunday is the first day of the week |
|
Year for the week where Sunday is the first day of the week, numeric, four digits; used with %V |
|
Year for the week, where Monday is the first day of the week, numeric, four digits; used with %v |
|
| Year, numeric, four digits | |
| Year, numeric (two digits) | |
A literal % character |
|
x , for any x not listed above |
The following table lists specifiers for time interval and time point units.
For Table API, please use _
for spaces (e.g., DAY_TO_HOUR
).
| Time Interval Unit | Time Point Unit |
|---|---|
MILLENIUM (SQL-only) |
|
CENTURY (SQL-only) |
|
YEAR |
YEAR |
YEAR TO MONTH |
|
QUARTER |
QUARTER |
MONTH |
MONTH |
WEEK |
WEEK |
DAY |
DAY |
DAY TO HOUR |
|
DAY TO MINUTE |
|
DAY TO SECOND |
|
HOUR |
HOUR |
HOUR TO MINUTE |
|
HOUR TO SECOND |
|
MINUTE |
MINUTE |
MINUTE TO SECOND |
|
SECOND |
SECOND |
MILLISECOND |
|
MICROSECOND |
|
DOY (SQL-only) |
|
DOW (SQL-only) |
|
SQL_TSI_YEAR (SQL-only) |
|
SQL_TSI_QUARTER (SQL-only) |
|
SQL_TSI_MONTH (SQL-only) |
|
SQL_TSI_WEEK (SQL-only) |
|
SQL_TSI_DAY (SQL-only) |
|
SQL_TSI_HOUR (SQL-only) |
|
SQL_TSI_MINUTE (SQL-only) |
|
SQL_TSI_SECOND (SQL-only) |


Need help or have questions?
Call Customer Service
at 1-800-555-5555
SUBTOTAL
PROMOTION CODE {{code}} APPLIED
NO PROMOTION CODE APPLIED
ESTIMATED SHIPPING*
You Qualify for for Free shipping,
because your order is over $50*
ESTIMATED TOTAL
Tax will be applied during checkout
Secure checkout. Shopping is always safe and secure
SUBTOTAL
PROMOTION CODE {{code}} APPLIED
NO PROMOTION CODE APPLIED
ESTIMATED SHIPPING*
You Qualify for for Free shipping,
because your order is over $50*
ESTIMATED TOTAL
Tax will be applied during checkout


Saved
Built-in shortcuts
Path
Maps to
Query
View go/ shortcuts
if
%s
added to
Query
,
%s
is replaced by the short-url's path. If no
%s
found, the short-url's path is simply appended to the
Query
.


If you choose COMPLIANCE ON PAPERS which costs {{Constants.on_paper|c}} and The Agency chooses DETAILED INSPECTION, the you will be caught 90% of the time.
If you choose COMPLIANCE ON PAPERS and The Agency chooses QUICK INSPECTION, the you will not be caught.
{%else%}
If you decide to conduct DETAILED INSPECTION which will cost you {{Constants.expert|c}} and Firm decides to NOT COMPLY, the Firm will be caught and pay fine of {{Constants.fine|c}}.
If you decide to conduct QUICK INSPECTION which will cost you {{Constants.intern|c}}and Firm decides to NOT COMPLY, you will catch them 50% of the time.
If you choose DETAILED INSPECTION and Firm chooses COMPLIANCE ON PAPERS, the Firm will be caught 90% of the time.
If you choose QUICK INSPECTION and Firm chooses COMPLIANCE ON PAPERS, the Firm will not be caught.


Sets or gets the layout. This property determines the position of the docking layout
elements and their characteristics. The first member of the layout array should
always be an item of type 'layoutGroup'.
Each object in the layout array can have the following properties, with
some restrictions based on the type:
- type. Possible values:
- 'layoutGroup' - container for other groups. It has no visual features. The root item is always of this type.
- 'tabbedGroup' - a group that contains layoutPanels. It is represented by a jqxWindow-like
panel with a bottom-aligned jqxRibbon inside.
- 'documentGroup' - a group that contains documentPanels. It is represented by a top-aligned
jqxRibbon.
- 'autoHideGroup' - a group that contains layoutPanels. It is represented by a jqxRibbon
with
mode: 'popup'
. Each ribbon item has a jqxWindow-like panel in
its content. This group has to be either the first or the last child item of its
parent layoutGroup.
- 'layoutPanel' - a panel that can be inserted in a tabbedGroup or autoHideGroup.
When it is in a tabbedGroup it is represented by a ribbon item and in an autoHideGroup
- by a jqxWindow-like panel inside a ribbon item.
- 'documentPanel' - a panel that can be inserted in a documentGroup. It is represented
by a ribbon item.
- 'floatGroup' - a floating group that can contain a tabbedGroup or a layoutPanel.
It is represented by a jqxWindow. Initial
floatGroups have to be defined after the root layoutGroup in the layout array.
- alignment - sets the alignment of an autoHideGroup. Possible values:
- 'left'
- 'right'
- 'top'
- 'bottom'
- allowClose - applicable to tabbedGroups, floatGroups, layoutPanels
and documentPanels. If set to false, the group/panel cannot be closed.
- allowPin - applicable only to tabbedGroups. If set to false,
the group cannot be pinned.
- allowUnpin - applicable only to autoHideGroups. If set to false,
the group cannot be unpinned.
- contentContainer - indicates which HTML element has the content
of the panel. The required value is the value of an existing HTML element's data-container
attribute. N/A to groups.
- height - sets the height of a group (N/A to panels). Used only
if the parent group's orientation is 'vertical' or for floatGroups. The heights
of all such groups have to be set either in pixels or percents (not a mix of both).
- initContent - a callback function to be called when a panel is
opened for the first time. Useful for initializing widgets in panels. N/A to groups.
- minHeight - sets the minimumn height (in pixels) of a group which
is vertically aligned within its parent group. Disregards the value of the minGroupHeight
property.
- minWidth - sets the minimumn width (in pixels) of a group which
is horizontally aligned within its parent group. Disregards the value of the
minGroupWidth property.
- orientation - orients child items either horizontally or vertically.
Applicable only to layoutGroups. Possible values:
- pinnedHeight - sets what the height of a tabbedGroup will be after
it is pinned.
- pinnedWidth - sets what the width of a tabbedGroup will be after
it is pinned.
- position - sets the initial position of a floatGroup. The position
property is an object with the following properties:
- selected - sets whether a panel is initially selected. N/A to groups.
- title - sets the title of a panel. Represented by the corresponding
ribbon item's title. N/A to groups.
- unpinnedHeight - sets what the height of an autoHideGroup will
be after it is unpinned.
- unpinnedWidth - sets what the width of an autoHideGroup will be
after it is unpinned.
- width - sets the width of a group (N/A to panels). Used only if
the parent group's orientation is 'horizontal' or for floatGroups. The widths of
all such groups have to be set either in pixels or percents (not a mix of both).
- items - an array of item objects with the fields described above.
N/A to panels.


Deploy Chatwoot using Helm Chart
Chatwoot is an open-source, self-hosted customer engagement suite. Chatwoot lets you view and manage your customer data, communicate with them irrespective of which medium they use, and re-engage them based...
read more


[Gecode] Logo, Homepage
Gert Smolka
smolka at ps.uni-sb.de
Thu Oct 28 16:44:18 CEST 2004
> [mailto:gecode-bounces at ps.uni-sb.de] On Behalf Of Christian Schulte
> partly I agree with what Denys says but I would like to use the normal
> academic model: individuals with affiliations and their roles in the
> development.
Fine. This I think is the best way to
handle it, and the standard one anyway.
The default interpretation is that the
institutions of the developers support
the development, in particular through
the persons listed as developpers.
> But what I do not want is something
> such as a consortium.
I agree. The problem with the consortium
is that it is closed, more or less. This
is in conflict with Gecode's goals.
To make my point clear: I insist that the
institutions supporting the developpers
can say that they develop Gecode.
Gert
More information about the gecode-users
mailing list


Software
TOOLS USED
virtualbox
ISO
notice....!!!!
download your supporting software by clicking the button above


--- layout: tweet ---
“Must be willing to relocate to SF”
10/20/2017, 10:16:26 AM
Favs: 6
Retweets: 1