Commit graph

23 commits

Author SHA1 Message Date
adam
844cef097a Changes:
* CVE-2012-3488: PostgreSQL insecure use of libxslt
* CVE-2012-3489: PostgreSQL insecure use of libxml2
* Updates and corrections to time zone data
* Multiple documentation updates and corrections
* Add limit on max_wal_senders
* Fix dependencies generated during ALTER TABLE ADD CONSTRAINT USING INDEX.
* Correct behavior of unicode conversions for PL/Python
* Fix WITH attached to a nested set operation (UNION/INTERSECT/EXCEPT).
* Fix syslogger so that log_truncate_on_rotation works in the first rotation.
* Only allow autovacuum to be auto-canceled by a directly blocked process.
* Improve fsync request queue operation
* Prevent corner-case core dump in rfree().
* Fix Walsender so that it responds correctly to timeouts and deadlocks
* Several PL/Perl fixes for encoding-related issues
* Make selectivity operators use the correct collation
* Prevent unsuitable slaves from being selected for synchronous replication
* Make REASSIGN OWNED work on extensions as well
* Fix race condition with ENUM comparisons
* Make NOTIFY cope with out-of-disk-space
* Fix memory leak in ARRAY subselect queries
* Reduce data loss at replication failover
* Fix behavior of subtransactions with Hot Standby
2012-08-23 16:56:38 +00:00
morr
ec6be795fa Security update to version 8.4.12.
Changes:

* Fix incorrect password transformation in contrib/pgcrypto's DES crypt()
function (Solar Designer)
* Ignore SECURITY DEFINER and SET attributes for a procedural language's call
handler (Tom Lane)
* Allow numeric timezone offsets in timestamp input to be up to 16 hours away
from UTC (Tom Lane)
* Fix timestamp conversion to cope when the given time is exactly the last DST
transition time for the the current timezone (Tom Lane)
* Fix text to name and char to name casts to perform string truncation
correctly in multibyte encodings (Karl Schnaitter)
* Fix memory copying bug in to_tsquery() (Heikki Linnakangas)
* Fix planner's handling of outer PlaceHolderVars within subqueries (Tom Lane)
* Fix slow session startup when pg_attribute is very large (Tom Lane)
* Ensure sequential scans check for query cancel reasonably often (Merlin
Moncure)
* Ensure the Windows implementation of PGSemaphoreLock() clears
ImmediateInterruptOK before returning (Tom Lane)
* Show whole-row variables safely when printing views or rules (Abbas Butt, Tom
Lane)
* Fix COPY FROM to properly handle null marker strings that correspond to
invalid encoding (Tom Lane)
* Ensure autovacuum worker processes perform stack depth checking properly
(Heikki Linnakangas)
* Fix logging collector to not lose log coherency under high load (Andrew
Dunstan)
* Fix logging collector to ensure it will restart file rotation after receiving
SIGHUP (Tom Lane)
* Fix WAL replay logic for GIN indexes to not fail if the index was
subsequently dropped (Tom Lane)
* Fix memory leak in PL/pgSQL's RETURN NEXT command (Joe Conway)
* Fix PL/pgSQL's GET DIAGNOSTICS command when the target is the function's
first variable (Tom Lane)
* Fix potential access off the end of memory in psql's expanded display (\x)
mode (Peter Eisentraut)
* Fix several performance problems in pg_dump when the database contains many
objects (Jeff Janes, Tom Lane)
* Fix contrib/dblink's dblink_exec() to not leak temporary database connections
upon error (Tom Lane)
* Fix contrib/dblink to report the correct connection name in error messages
(Kyotaro Horiguchi)
* Update time zone data files to tzdata release 2012c for DST law changes in
Antarctica, Armenia, Chile, Cuba, Falkland Islands, Gaza, Haiti, Hebron,
Morocco, Syria, and Tokelau Islands; also historical corrections for Canada.
2012-07-01 19:30:23 +00:00
sbd
21792a9296 Recursive PKGREVISION bump for libxml2 buildlink addition. 2012-06-14 07:43:06 +00:00
hans
15d5803a6d Make sure the paths to bison-yacc, lex and perl are correct in the
installed src/Makefile.global. Don't assume they all exist in ${PREFIX}.
2012-03-22 14:46:28 +00:00
adam
c5da613af3 Changes 8.4.11:
* Require execute permission on the trigger function for CREATE TRIGGER
* Convert newlines to spaces in names written in pg_dump comments
* Fix btree index corruption from insertions concurrent with vacuuming
* Allow non-existent values for some settings in ALTER USER/DATABASE SET
* Track the OID counter correctly during WAL replay, even when it wraps around
* Fix regular expression back-references with * attached
* Fix recently-introduced memory leak in processing of inet/cidr values
* Avoid double close of file handle in syslogger on Windows
* Fix I/O-conversion-related memory leaks in plpgsql
* Improve pg_dump's handling of inherited table columns
* Fix pg_restore's direct-to-database mode for INSERT-style table data
* Fix error in contrib/intarray's int[] & int[] operator
* Fix error detection in contrib/pgcrypto's encrypt_iv() and decrypt_iv()
* Fix one-byte buffer overrun in contrib/test_parser
* Use __sync_lock_test_and_set() for spinlocks on ARM, if available
* Use -fexcess-precision=standard option when building with gcc versions that
  accept it
* Allow use of threaded Python on FreeBSD
2012-03-05 14:13:19 +00:00
adam
00175c9ffc Changes 8.4.10:
* Fix bugs in information_schema.referential_constraints view
* Correct collations for citext columns and indexes
* Prevent possible crash when joining to a scalar function
* Prevent transitory data corruption of GIN indexes after a crash
* Prevent data corruption on TOAST columns when copying data
* Fix failures during hot standby startup
* Correct another "variable not found in subplan target list" bug
* Fix bug with sorting on aggregate expressions in windowing functions
* Multiple bug fixes for pg_upgrade
* Change Foreign Key creation order to better support self-referential keys
* Multiple bug fixes to CREATE EXTENSION
* Ensure that function return type and data returned from PL/perl agree
* Ensure that PL/perl strings are always UTF-8
* Assorted bug fixes for various Extensions
* Updates to the time zone database, particularly to CST6
2011-12-15 17:16:13 +00:00
adam
a997cad162 Changes 8.4.9:
* Fix bugs in indexing of in-doubt HOT-updated tuples
* Fix multiple bugs in GiST index page split processing
* Fix possible buffer overrun in tsvector_concat()
* Fix crash in xml_recv when processing a "standalone" parameter
* Make pg_options_to_table return NULL for an option with no value
* Avoid possibly accessing off the end of memory in "ANALYZE" and in
  SJIS-2004 encoding conversion
* Prevent intermittent hang in interactions of startup process with
  bgwriter process
* Fix race condition in relcache init file invalidation
* Fix memory leak at end of a GiST index scan
* Fix incorrect memory accounting (leading to possible memory bloat)
  in tuplestores supporting holdable cursors and plpgsql's RETURN
  NEXT command
* Fix performance problem when constructing a large, lossy bitmap
* Fix join selectivity estimation for unique columns
* Fix nested PlaceHolderVar expressions that appear only in
  sub-select target lists
* Allow nested EXISTS queries to be optimized properly
* Fix array- and path-creating functions to ensure padding bytes are zeroes
* Fix "EXPLAIN" to handle gating Result nodes within inner-indexscan subplans
* Work around gcc 4.6.0 bug that breaks WAL replay
* Fix dump bug for VALUES in a view
* Disallow SELECT FOR UPDATE/SHARE on sequences
  This operation doesn't work as expected and can lead to failures.
* Fix "VACUUM" so that it always updates pg_class.reltuples/relpages
* more...
2011-09-27 11:04:30 +00:00
obache
1d9df3258a recursive bump from gettext-lib shlib bump. 2011-04-22 13:41:54 +00:00
adam
74905afddc Changes 8.4.8:
* fix build issues on HP-UX and Itanium
* update time zone files for recent time zone changes
* change SQLSTATE for Hot Standby warnings
* prevent bgwriter hang during recovery
* prevent recursive composite type creation
* disallow dropping tables whose triggers are still pending
* allow use of "replication" as a user name
* prevent a crash during GEQO planning
* improve join plans for tables with missing statistics
* fix error with SELECT FOR UPDATE in a subselect
* close PL/python array slice memory leak
* allow SSL connections for users with no home directory
2011-04-22 13:01:30 +00:00
adam
6b8a877dd4 Changes 8.4.7:
* Avoid failures when "EXPLAIN" tries to display a simple-form CASE
  expression.
* Fix assignment to an array slice that is before the existing range
  of subscripts.
* Avoid unexpected conversion overflow in planner for very distant
  date values.
* Fix pg_restore's text output for large objects (BLOBs) when
  standard_conforming_strings is on.
* Fix erroneous parsing of tsquery values containing ... &
  !(subexpression) | ...
* Fix buffer overrun in "contrib/intarray"'s input function for the
  query_int type.
* Fix bug in "contrib/seg"'s GiST picksplit algorithm.
2011-02-15 08:14:15 +00:00
brook
38f8faa35b Substitutions in src/Makefile.global end up creating an incorrect path to
ld.  As a result, the installed version of this file is not useful for
building PostgreSQL extensions.  Instead, replace with ${LD}.  See the
discussion beginning with

     http://mail-index.netbsd.org/tech-pkg/2011/02/07/msg006685.html

for more information.
2011-02-08 15:50:07 +00:00
adam
a9e4d7742e Changes 8.4.6:
* Force the default wal_sync_method to be fdatasync on Linux
* Fix assorted bugs in WAL replay logic for GIN indexes
* Fix recovery from base backup when the starting checkpoint WAL
  record is not in the same WAL segment as its redo point
* Fix persistent slowdown of autovacuum workers when multiple workers
  remain active for a long time
* Add support for detecting register-stack overrun on IA64
* Add a check for stack overflow in copyObject()
* Fix detection of page splits in temporary GiST indexes
* Fix error checking during early connection processing
* Improve efficiency of window functions
* Avoid memory leakage while "ANALYZE"'ing complex index expressions
* Ensure an index that uses a whole-row Var still depends on its table
* Do not "inline" a SQL function with multiple OUT parameters
* Behave correctly if ORDER BY, LIMIT, FOR UPDATE, or WITH is
  attached to the VALUES part of INSERT ... VALUES
* Fix constant-folding of COALESCE() expressions
* Fix postmaster crash when connection acceptance (accept() or one of
  the calls made immediately after it) fails, and the postmaster was
  compiled with GSSAPI support
* Fix missed unlink of temporary files when log_temp_files is active
* Add print functionality for InhRelation nodes
* Fix incorrect calculation of distance from a point to a horizontal
  line segment
* Fix incorrect calculation of transaction status in ecpg
* Fix PL/pgSQL's handling of "simple" expressions to not fail in
  recursion or error-recovery cases
* Fix PL/Python's handling of set-returning functions
* Fix bug in "contrib/cube"'s GiST picksplit algorithm
* Don't emit "identifier will be truncated" notices in
  "contrib/dblink" except when creating new connections
* Fix potential coredump on missing public key in "contrib/pgcrypto"
* Fix memory leak in "contrib/xml2"'s XPath query functions
* Update time zone data files to tzdata release 2010o for DST law
  changes in Fiji and Samoa; also historical corrections for Hong
  Kong.
2010-12-19 09:53:41 +00:00
adam
47d9bede16 Unified PostgreSQL client and server options 2010-11-03 14:36:39 +00:00
adam
ac6bf88de0 Changes 8.4.5:
* Use a separate interpreter for each calling SQL userid in PL/Perl and PL/Tcl
* Prevent possible crashes in pg_get_expr() by disallowing it from being called
  with an argument that is not one of the system catalog columns it's intended
  to be used with
* Treat exit code 128 (ERROR_WAIT_NO_CHILDREN) as non-fatal on Windows
* Fix incorrect placement of placeholder evaluation
* Fix possible duplicate scans of UNION ALL member relations
* Fix "cannot handle unplanned sub-select" error
* Fix mishandling of whole-row Vars that reference a view or sub-select and
  appear within a nested sub-select
* Fix mishandling of cross-type IN comparisons
* Fix computation of "ANALYZE" statistics for tsvector columns
* Improve planner's estimate of memory used by array_agg(), string_agg(), and
  similar aggregate functions
* Fix failure to mark cached plans as transient
* Reduce PANIC to ERROR in some occasionally-reported btree failure cases, and
  provide additional detail in the resulting error messages
* Fix incorrect search logic for partial-match queries with GIN indexes
* Prevent show_session_authorization() from crashing within autovacuum
  processes
* Defend against functions returning setof record where not all the returned
  rows are actually of the same rowtype
* Fix possible corruption of pending trigger event lists during subtransaction
  rollback
* Fix possible failure when hashing a pass-by-reference function result
* Improve merge join's handling of NULLs in the join columns
* Take care to fsync the contents of lockfiles (both "postmaster.pid" and the
  socket lockfile) while writing them
* Avoid recursion while assigning XIDs to heavily-nested subtransactions
* Avoid holding open old WAL segments in the walwriter process
* Fix log_line_prefix's %i escape, which could produce junk early in backend
  startup
* Prevent misinterpretation of partially-specified relation options
  for TOAST tables
* Fix inheritance count tracking in "ALTER TABLE ... ADD CONSTRAINT"
* Fix possible data corruption in "ALTER TABLE ... SET TABLESPACE" when
  archiving is enabled
* Allow "CREATE DATABASE" and "ALTER DATABASE ... SET TABLESPACE" to be
  interrupted by query-cancel
* Improve "CREATE INDEX"'s checking of whether proposed index
  expressions are immutable
* Fix "REASSIGN OWNED" to handle operator classes and families
* Fix possible core dump when comparing two empty tsquery values
* Fix LIKE's handling of patterns containing % followed by _
2010-10-07 15:53:22 +00:00
adam
bba5f17b29 Changes 8.4.4:
* Enforce restrictions in plperl using an opmask applied to the whole
  interpreter, instead of using "Safe.pm"
* Prevent PL/Tcl from executing untrustworthy code from pltcl_modules
* Fix data corruption during WAL replay of ALTER ... SET TABLESPACE
* Fix possible crash if a cache reset message is received during
  rebuild of a relcache entry
* Apply per-function GUC settings while running the language
  validator for the function
* Do constraint exclusion for inherited "UPDATE" and "DELETE" target
  tables when constraint_exclusion = partition
* Do not allow an unprivileged user to reset superuser-only parameter
  settings
* Avoid possible crash during backend shutdown if shutdown occurs
  when a CONTEXT addition would be made to log entries
* Fix erroneous handling of %r parameter in recovery_end_command
* Ensure the archiver process responds to changes in archive_command
  as soon as possible
* Fix pl/pgsql's CASE statement to not fail when the case expression
  is a query that returns no rows
* Update pl/perl's "ppport.h" for modern Perl versions
* Fix assorted memory leaks in pl/python
* Handle empty-string connect parameters properly in ecpg
* Prevent infinite recursion in psql when expanding a variable that
  refers to itself
* Fix psql's \copy to not add spaces around a dot within \copy
  (select ...)
* Avoid formatting failure in psql when running in a locale context
  that doesn't match the client_encoding
* Fix unnecessary "GIN indexes do not support whole-index scans"
  errors for unsatisfiable queries using "contrib/intarray" operators
* Ensure that "contrib/pgstattuple" functions respond to cancel
  interrupts promptly
* Make server startup deal properly with the case that shmget()
  returns EINVAL for an existing shared memory segment
* Avoid possible crashes in syslogger process on Windows
* Deal more robustly with incomplete time zone information in the
  Windows registry
* Update the set of known Windows time zone names
* Update time zone data files to tzdata release 2010j for DST law
  changes in Argentina, Australian Antarctic, Bangladesh, Mexico,
  Morocco, Pakistan, Palestine, Russia, Syria, Tunisia; also
  historical corrections for Taiwan.
  Also, add PKST (Pakistan Summer Time) to the default set of
  timezone abbreviations.
2010-05-20 12:36:38 +00:00
taca
77d8c6bd3e Add missing some documentation files to PLIST.
Bump PKGREVISION.
2010-04-15 03:25:05 +00:00
adam
56b35ce239 Changes 8.4.3:
* Add new configuration parameter ssl_renegotiation_limit to control
  how often we do session key renegotiation for an SSL connection
* Fix possible deadlock during backend startup
* Fix possible crashes due to not handling errors during relcache
  reload cleanly
* Fix possible crash due to use of dangling pointer to a cached plan
* Fix possible crash due to overenthusiastic invalidation of cached
  plan for "ROLLBACK"
* Fix possible crashes when trying to recover from a failure in
  subtransaction start
* Fix server memory leak associated with use of savepoints and a
  client encoding different from server's encoding
* Fix incorrect WAL data emitted during end-of-recovery cleanup of a
  GIST index page split
* Fix bug in WAL redo cleanup method for GIN indexes
* Fix incorrect comparison of scan key in GIN index search
* Make substring() for bit types treat any negative length as meaning
  "all the rest of the string"
  The previous coding treated only -1 that way, and would produce an
  invalid result value for other negative values, possibly leading to
  a crash (CVE-2010-0442).
* Fix integer-to-bit-string conversions to handle the first
  fractional byte correctly when the output bit width is wider than
  the given integer by something other than a multiple of 8 bits
* Fix some cases of pathologically slow regular expression matching
* Fix bug occurring when trying to inline a SQL function that returns
  a set of a composite type that contains dropped columns
* Fix bug with trying to update a field of an element of a
  composite-type array column
* Avoid failure when "EXPLAIN" has to print a FieldStore or
  assignment ArrayRef expression
  These cases can arise now that "EXPLAIN VERBOSE" tries to print
  plan node target lists.
* Avoid an unnecessary coercion failure in some cases where an
  undecorated literal string appears in a subquery within
  "UNION"/"INTERSECT"/"EXCEPT"
  This fixes a regression for some cases that worked before 8.4.
* Avoid undesirable rowtype compatibility check failures in some
  cases where a whole-row Var has a rowtype that contains dropped
  columns
* Fix the STOP WAL LOCATION entry in backup history files to report
  the next WAL segment's name when the end location is exactly at a
  segment boundary
* Always pass the catalog ID to an option validator function
  specified in "CREATE FOREIGN DATA WRAPPER"
* Fix some more cases of temporary-file leakage
* Add support for doing FULL JOIN ON FALSE
* Improve constraint exclusion processing of boolean-variable cases,
  in particular make it possible to exclude a partition that has a
  "bool_column = false" constraint
* Prevent treating an INOUT cast as representing binary compatibility
* Include column name in the message when warning about inability to
  grant or revoke column-level privileges
  This is more useful than before and helps to prevent confusion when
  a "REVOKE" generates multiple messages, which formerly appeared to
  be duplicates.
* When reading "pg_hba.conf" and related files, do not treat
  @something as a file inclusion request if the @ appears inside
  quote marks; also, never treat @ by itself as a file inclusion
  request
* Prevent infinite loop on some platforms if a directory is named as
  an inclusion target in "pg_hba.conf" and related files
* Fix possible infinite loop if SSL_read or SSL_write fails without
  setting errno
  This is reportedly possible with some Windows versions of openssl.
* Disallow GSSAPI authentication on local connections, since it
  requires a hostname to function correctly
* Protect ecpg against applications freeing strings unexpectedly
* Make ecpg report the proper SQLSTATE if the connection disappears
* Fix translation of cell contents in psql \d output
* Fix psql's numericlocale option to not format strings it shouldn't
  in latex and troff output formats
* Fix a small per-query memory leak in psql
* Make psql return the correct exit status (3) when ON_ERROR_STOP and
  --single-transaction are both specified and an error occurs during
  the implied "COMMIT"
* Fix pg_dump's output of permissions for foreign servers
* Fix possible crash in parallel pg_restore due to out-of-range
  dependency IDs
* Fix plpgsql failure in one case where a composite column is set to NULL
* Fix possible failure when calling PL/Perl functions from PL/PerlU
  or vice versa
* Add volatile markings in PL/Python to avoid possible
  compiler-specific misbehavior
* Ensure PL/Tcl initializes the Tcl interpreter fully
  The only known symptom of this oversight is that the Tcl clock
  command misbehaves if using Tcl 8.5 or later.
* Prevent ExecutorEnd from being run on portals created within a
  failed transaction or subtransaction
  This is known to cause issues when using "contrib/auto_explain".
* Prevent crash in "contrib/dblink" when too many key columns are
  specified to a dblink_build_sql_* function
* Allow zero-dimensional arrays in "contrib/ltree" operations
* Fix assorted crashes in "contrib/xml2" caused by sloppy memory
  management
* Make building of "contrib/xml2" more robust on Windows
* Fix race condition in Windows signal handling
  One known symptom of this bug is that rows in pg_listener could be
  dropped under heavy load.
* Make the configure script report failure if the C compiler does not
  provide a working 64-bit integer datatype
  This case has been broken for some time, and no longer seems worth
  supporting, so just reject it at configure time instead.
* Update time zone data files to tzdata release 2010e for DST law
  changes in Bangladesh, Chile, Fiji, Mexico, Paraguay, Samoa.
2010-04-12 09:58:38 +00:00
gdt
13cd4e0392 not MAKE_JOBS_SAFE 2010-02-05 14:50:38 +00:00
wiz
579796a3e5 Recursive PKGREVISION bump for jpeg update to 8. 2010-01-17 12:02:03 +00:00
adam
520082782d Changes 8.4.2:
* Protect against indirect security threats caused by index functions
  changing session-local state
* Reject SSL certificates containing an embedded null byte in the
  common name (CN) field
* Fix hash index corruption
* Fix possible crash during backend-startup-time cache initialization
* Avoid crash on empty thesaurus dictionary
* Prevent signals from interrupting VACUUM at unsafe times
* Fix possible crash due to integer overflow in hash table size
  calculation
* Fix crash if a DROP is attempted on an internally-dependent object
* Fix very rare crash in inet/cidr comparisons
* Ensure that shared tuple-level locks held by prepared transactions
  are not ignored
* Fix premature drop of temporary files used for a cursor that is
  accessed within a subtransaction
* Fix memory leak in syslogger process when rotating to a new CSV
  logfile
* Fix memory leak in postmaster when re-parsing "pg_hba.conf"
* Fix Windows permission-downgrade logic
* Make FOR UPDATE/SHARE in the primary query not propagate into WITH
  queries
* Fix bug with a WITH RECURSIVE query immediately inside another one
* Fix concurrency bug in hash indexes
* Fix incorrect logic for GiST index page splits, when the split
  depends on a non-first column of the index
* Fix wrong search results for a multi-column GIN index with
  fastupdate enabled
* More...
2009-12-16 13:30:53 +00:00
fhajny
ac40f1fd2c Adding the pgxs makefiles using post-install which other packages
like PostGIS build against.
2009-12-15 22:39:40 +00:00
adam
77d6660c4c Changes 8.4.1:
* Fix WAL page header initialization at the end of archive recovery
* Fix "cannot make new WAL entries during recovery" error
* Fix problem that could make expired rows visible after a crash
* Disallow "RESET ROLE" and "RESET SESSION AUTHORIZATION" inside
  security-definer functions
* Make "LOAD" of an already-loaded loadable module into a no-op
* Make window function PARTITION BY and ORDER BY items always be
  interpreted as simple expressions
* Fix several errors in planning of semi-joins
* Fix handling of whole-row references to subqueries that are within
  an outer join
* Fix Windows shared-memory allocation code
* Fix locale handling with plperl
* Fix handling of reloptions to ensure setting one option doesn't
  force default values for others
* Ensure that a "fast shutdown" request will forcibly terminate open
  sessions, even if a "smart shutdown" was already in progress
* Avoid memory leak for array_agg() in GROUP BY queries
* Treat to_char(..., 'TH') as an uppercase ordinal suffix with 'HH'/'HH12'
2009-09-10 10:06:19 +00:00
adam
aac2e6ede4 Many of the changes in PostgreSQL 8.4 are new or improved administration and
monitoring tools and commands. Each user has their own favorite features which
will make day-to-day work with PostgreSQL easier and more productive for them.
Among the most popular enhancements are:

* Parallel Database Restore, speeding up recovery from backup up to 8 times
* Per-Column Permissions, allowing more granular control of sensitive data
* Per-database Collation Support, making PostgreSQL more useful in
  multi-lingual environments
* In-place Upgrades through pg_migrator (beta), enabling upgrades from 8.3 to
  8.4 without extensive downtime
* New Query Monitoring Tools, giving administrators more insight into query
  activity
* Greatly Reduced VACUUM Overhead through the Visibility Map
* New Monitoring Tools for current queries, query load and deadlocks

Version 8.4 also makes data analysis easier through the advanced ANSI SQL2003
features of windowing functions, common table expressions and recursive queries.
Enhancements to stored procedures, such as default parameters and variadic
parameters, make database server programming simpler and more compact.
Of course, there are also performance improvements included in this version.
2009-07-29 06:26:17 +00:00