From 9cdbf85090512d7c777b8de29601e17f50ca77ff Mon Sep 17 00:00:00 2001 From: Norbert Orzechowicz Date: Wed, 21 Oct 2026 17:49:44 -0500 Subject: [PATCH 1/2] refactor(flow-php/etl): rename entry to column - withColumn()/withColumns(), withEntry()/withEntries() deprecated - with_column(), WithColumn; entry() DSL function removed - Definition::reference() replaces entry() - Entry-named transformers, strategies, exception renamed to Column - adapters and CLI: TypesMap, withSheetNameFromColumn(), withIdentifierColumn(), JSON pointer column name - messages, docs, examples, completers and PHAR updated --- benchmarks/src/Joining/JoinEachScenario.php | 2 +- .../Joining/JoinOrdersWithSellersScenario.php | 2 +- .../src/Partitioning/PartitionCardinality.php | 2 +- benchmarks/src/Pipeline/CanonicalPipeline.php | 4 +- .../src/Pipeline/NodePipelineScenario.php | 4 +- benchmarks/src/Pipeline/PlanDepthScenario.php | 4 +- .../src/Service/Seal/SealWriteScenario.php | 2 +- .../src/Window/MovingAverageScenario.php | 2 +- benchmarks/src/Window/RankScenario.php | 2 +- benchmarks/src/Window/RowNumberScenario.php | 2 +- .../src/Window/RunningTotalScenario.php | 2 +- .../src/Window/WholePartitionScenario.php | 2 +- .../suites/Pipeline/OrdersPipelineBench.php | 2 +- .../Tests/Unit/Pipeline/OrdersSchemaTest.php | 4 +- .../adrs/variadic-arguments-pattern.md | 10 +- documentation/components/adapters/chartjs.md | 2 +- documentation/components/adapters/excel.md | 2 +- documentation/components/adapters/parquet.md | 4 +- .../components/adapters/postgresql.md | 8 +- documentation/components/adapters/seal.md | 4 +- documentation/components/adapters/xml.md | 2 +- .../bridges/symfony-http-foundation-bridge.md | 2 +- documentation/components/cli/docs.md | 10 +- documentation/components/core/aggregations.md | 28 ++--- documentation/components/core/caching.md | 2 +- .../components/core/column-backend.md | 4 +- documentation/components/core/core.md | 2 +- .../components/core/data-manipulation.md | 6 +- documentation/components/core/display.md | 4 +- .../components/core/error-handling.md | 2 +- documentation/components/core/floe.md | 2 +- documentation/components/core/partitioning.md | 4 +- documentation/components/core/pivot.md | 2 +- .../components/core/transformations.md | 4 +- .../components/core/window-functions.md | 4 +- documentation/introduction.md | 2 +- documentation/quick-start.md | 16 +-- documentation/upgrading.md | 23 ++++ .../Tests/Integration/ChartJSLoaderTest.php | 8 +- .../Flow/ETL/Adapter/CSV/PhpCSVEncoder.php | 2 +- .../Tests/Integration/CSVExtractorTest.php | 4 +- .../Adapter/CSV/Tests/Integration/CSVTest.php | 4 +- .../CSV/Tests/Unit/PhpCSVEncoderTest.php | 2 +- .../Flow/ETL/Adapter/Doctrine/DbalEncoder.php | 2 +- .../ETL/Adapter/Doctrine/SchemaConverter.php | 8 +- .../Flow/ETL/Adapter/Doctrine/TypesMap.php | 2 +- .../Flow/ETL/Adapter/Excel/ExcelEncoder.php | 2 +- .../Flow/ETL/Adapter/Excel/ExcelLoader.php | 17 ++- .../Tests/Integration/ExcelExtractorTest.php | 2 +- .../Tests/Integration/ExcelLoaderTest.php | 14 +-- .../JSON/JSONMachine/JsonExtractor.php | 12 +- .../JSON/JSONMachine/JsonFileReader.php | 4 +- .../Flow/ETL/Adapter/JSON/PhpJsonEncoder.php | 7 +- .../Flow/ETL/Adapter/JSON/SchemaConverter.php | 2 +- .../JSON/Tests/Context/JsonFixtureContext.php | 8 +- .../JSONMachine/JsonFileReaderTest.php | 2 +- .../JSON/Tests/Integration/JsonLinesTest.php | 2 +- .../JSON/Tests/Integration/JsonTest.php | 2 +- .../JSON/Tests/Unit/PhpJsonEncoderTest.php | 2 +- .../ETL/Adapter/Parquet/ParquetEncoder.php | 2 +- .../Parquet/ParquetSchemaConformance.php | 4 +- .../Adapter/Parquet/PhpParquetOpenSource.php | 2 +- .../Parquet/Pushdown/FilterTranslator.php | 10 +- .../ETL/Adapter/Parquet/SchemaConverter.php | 2 +- .../Integration/ParquetExtractorTest.php | 2 +- .../Parquet/Tests/Integration/ParquetTest.php | 4 +- .../Adapter/PostgreSql/PostgreSqlEncoder.php | 2 +- .../Adapter/PostgreSql/PostgreSqlLoader.php | 4 +- .../QueryBuilder/DeleteQueryBuilder.php | 4 +- .../QueryBuilder/InsertQueryBuilder.php | 4 +- .../QueryBuilder/UpdateQueryBuilder.php | 4 +- .../ETL/Adapter/PostgreSql/ResultSchema.php | 2 +- .../Schema/SortingStrategy/TypeStrategy.php | 6 +- .../Adapter/PostgreSql/SchemaConverter.php | 12 +- .../{EntryTypesMap.php => TypesMap.php} | 2 +- .../Flow/ETL/Adapter/PostgreSql/functions.php | 8 +- .../QueryBuilder/DeleteQueryBuilderTest.php | 12 +- .../QueryBuilder/InsertQueryBuilderTest.php | 16 +-- .../QueryBuilder/UpdateQueryBuilderTest.php | 14 +-- ...EntryTypesMapTest.php => TypesMapTest.php} | 79 ++++++------- .../Flow/ETL/Adapter/Seal/SchemaConverter.php | 2 +- .../src/Flow/ETL/Adapter/Seal/SealEncoder.php | 2 +- .../src/Flow/ETL/Adapter/Seal/SealLoader.php | 14 +-- ...pesTest.php => SealAllColumnTypesTest.php} | 2 +- .../Seal/Tests/Integration/SealLoaderTest.php | 2 +- .../Seal/Tests/Unit/SealLoaderTest.php | 4 +- .../src/Flow/ETL/Adapter/Text/TextEncoder.php | 2 +- .../Text/Tests/Integration/TextTest.php | 2 +- .../src/Flow/ETL/Adapter/XML/XMLEncoder.php | 2 +- .../Integration/Loader/XMLLoaderTest.php | 4 +- .../Integration/XMLParserExtractorTest.php | 4 +- .../Adapter/XML/Tests/Integration/XMLTest.php | 26 ++--- .../Specification/OpenAPIConverter.php | 2 +- .../Tests/Unit/FlowToOpenAPIConverterTest.php | 4 +- .../Tests/Unit/OpenAPIConverterTest.php | 16 +-- .../Tests/Unit/OpenAPIToFlowConverterTest.php | 32 +++--- .../Flow/CLI/Command/Traits/JSONOptions.php | 4 +- .../Flow/CLI/Factory/JsonExtractorFactory.php | 4 +- .../CLI/Formatter/PipelineReportFormatter.php | 2 +- .../Tests/Integration/FileReadCommandTest.php | 26 ++++- .../Tests/Integration/Fixtures/pointer.json | 1 + .../etl/src/Flow/ETL/Bucketing/KeyValues.php | 2 +- .../etl/src/Flow/ETL/Cache/CacheIndex.php | 4 +- .../etl/src/Flow/ETL/Column/Php/MapColumn.php | 10 +- .../etl/src/Flow/ETL/Column/PhpBackend.php | 2 +- .../Flow/ETL/Config/Telemetry/SpanStack.php | 6 +- .../ETL/Config/Telemetry/TelemetryContext.php | 32 +++--- .../Flow/ETL/Constraint/UniqueConstraint.php | 2 +- src/core/etl/src/Flow/ETL/DSL/functions.php | 82 ++++++------- src/core/etl/src/Flow/ETL/DataFrame.php | 108 +++++++++++------- .../Flow/ETL/Dataset/Statistics/Column.php | 4 +- .../Flow/ETL/Dataset/Statistics/Columns.php | 2 +- .../ETL/Exception/ColumnMismatchException.php | 10 +- ...ion.php => DuplicatedColumnsException.php} | 2 +- .../ETL/Exception/InvalidLogicException.php | 2 +- .../SchemaDefinitionNotFoundException.php | 16 +-- .../Flow/ETL/Extractor/DataFrameExtractor.php | 4 +- .../Flow/ETL/Extractor/SequenceExtractor.php | 8 +- .../etl/src/Flow/ETL/Formatter/ASCII/Body.php | 12 +- .../etl/src/Flow/ETL/Function/ArrayUnpack.php | 2 +- .../ETL/Function/Evaluation/ResultColumn.php | 2 +- .../Flow/ETL/Function/ExpandingFunctions.php | 4 +- .../Flow/ETL/Function/ScalarFunctionChain.php | 8 +- src/core/etl/src/Flow/ETL/GroupBy.php | 4 +- .../src/Flow/ETL/GroupBy/AggregatedGroups.php | 2 +- .../etl/src/Flow/ETL/GroupBy/GroupBySteps.php | 4 +- .../etl/src/Flow/ETL/Join/Comparison/All.php | 12 +- .../etl/src/Flow/ETL/Join/Comparison/Any.php | 12 +- .../src/Flow/ETL/Join/Comparison/Equal.php | 12 +- .../Flow/ETL/Join/Comparison/Identical.php | 12 +- src/core/etl/src/Flow/ETL/Join/Expression.php | 4 +- .../etl/src/Flow/ETL/Join/HashJoin/Joiner.php | 10 +- .../src/Flow/ETL/Join/HashJoin/RowMerger.php | 14 +-- .../etl/src/Flow/ETL/Loader/Partitioning.php | 4 +- .../etl/src/Flow/ETL/Memory/ArrayMemory.php | 16 +-- .../src/Flow/ETL/Optimizer/ProjectionWalk.php | 4 +- .../etl/src/Flow/ETL/Plan/Explain/Details.php | 6 +- .../src/Flow/ETL/Plan/Explain/StepDetails.php | 3 +- .../etl/src/Flow/ETL/Plan/Node/Distinct.php | 10 +- src/core/etl/src/Flow/ETL/Plan/Node/Drop.php | 8 +- .../src/Flow/ETL/Plan/Node/DuplicateRow.php | 10 +- .../src/Flow/ETL/Plan/Node/ExpandColumn.php | 10 +- .../etl/src/Flow/ETL/Plan/Node/RenameEach.php | 4 +- .../etl/src/Flow/ETL/Plan/Node/Select.php | 8 +- .../src/Flow/ETL/Plan/Node/WindowColumn.php | 8 +- .../etl/src/Flow/ETL/Plan/Node/WithColumn.php | 12 +- .../src/Flow/ETL/Planner/NodeTranslator.php | 28 ++--- .../src/Flow/ETL/Processor/BoundExpansion.php | 22 ++-- .../Flow/ETL/Processor/ExpandingProcessor.php | 10 +- .../Flow/ETL/Processor/HashJoinProcessor.php | 4 +- .../Flow/ETL/Processor/WindowProcessor.php | 16 +-- .../Row/Formatter/ASCIISchemaFormatter.php | 12 +- .../src/Flow/ETL/Row/ResolvedReference.php | 14 +-- .../src/Flow/ETL/Row/UnresolvedReference.php | 20 ++-- src/core/etl/src/Flow/ETL/Rows.php | 8 +- src/core/etl/src/Flow/ETL/Rows/RowHashes.php | 2 +- .../etl/src/Flow/ETL/Rows/RowsBuilder.php | 8 +- src/core/etl/src/Flow/ETL/Schema.php | 95 +++++++-------- .../etl/src/Flow/ETL/Schema/Definition.php | 2 +- .../Schema/Definition/BooleanDefinition.php | 8 +- .../Flow/ETL/Schema/Definition/CommonType.php | 4 +- .../ETL/Schema/Definition/DateDefinition.php | 8 +- .../Schema/Definition/DateTimeDefinition.php | 8 +- .../ETL/Schema/Definition/EnumDefinition.php | 8 +- .../ETL/Schema/Definition/FloatDefinition.php | 8 +- .../ETL/Schema/Definition/HTMLDefinition.php | 8 +- .../Definition/HTMLElementDefinition.php | 8 +- .../Schema/Definition/IntegerDefinition.php | 8 +- .../ETL/Schema/Definition/JsonDefinition.php | 8 +- .../ETL/Schema/Definition/ListDefinition.php | 8 +- .../ETL/Schema/Definition/MapDefinition.php | 8 +- .../ETL/Schema/Definition/NullDefinition.php | 8 +- .../Schema/Definition/StringDefinition.php | 8 +- .../Schema/Definition/StructureDefinition.php | 8 +- .../ETL/Schema/Definition/TimeDefinition.php | 8 +- .../Schema/Definition/TimeZoneDefinition.php | 8 +- .../ETL/Schema/Definition/UuidDefinition.php | 8 +- .../ETL/Schema/Definition/XMLDefinition.php | 8 +- .../Definition/XMLElementDefinition.php | 8 +- .../Schema/Formatter/PHPSchemaFormatter.php | 16 +-- .../SortingStrategy/AlphabeticalStrategy.php | 4 +- .../SortingStrategy/MetadataStrategy.php | 4 +- .../Schema/Validator/EvolvingValidator.php | 4 +- .../Schema/Validator/SelectiveValidator.php | 4 +- .../ETL/Schema/Validator/StrictValidator.php | 6 +- .../Schema/Validator/ValidationContext.php | 2 +- .../etl/src/Flow/ETL/Transformation/Drop.php | 4 +- .../Flow/ETL/Transformation/MaskColumns.php | 2 +- .../src/Flow/ETL/Transformation/Select.php | 4 +- .../Flow/ETL/Transformer/DerivedColumns.php | 2 +- ...sformer.php => DropColumnsTransformer.php} | 2 +- .../Transformer/DropDuplicatesTransformer.php | 14 +-- .../Transformer/DuplicateRowTransformer.php | 26 ++--- ...former.php => PruneColumnsTransformer.php} | 4 +- ...ategy.php => RenameCaseColumnStrategy.php} | 2 +- ...yStrategy.php => RenameColumnStrategy.php} | 2 +- ...rategy.php => RenameMapColumnStrategy.php} | 2 +- ...gy.php => RenameReplaceColumnStrategy.php} | 2 +- ...former.php => RenameColumnTransformer.php} | 2 +- ...er.php => RenameEachColumnTransformer.php} | 10 +- .../Transformer/ScalarFunctionTransformer.php | 28 ++--- ...ormer.php => SelectColumnsTransformer.php} | 2 +- .../ETL/Transformer/SerializeTransformer.php | 2 +- .../Flow/ETL/Transformer/UnpackedColumns.php | 2 +- .../Transformer/UnserializeTransformer.php | 6 +- .../ETL/{WithEntry.php => WithColumn.php} | 2 +- src/core/etl/src/Flow/Floe/FrameEncoder.php | 2 +- .../ETL/Tests/Context/WindowFrameContext.php | 4 +- .../Tests/Context/WindowProcessorContext.php | 16 +-- ... => AddStampToStringColumnTransformer.php} | 12 +- .../Tests/Double/ForeignTypeDefinition.php | 2 +- .../Integration/DataFrame/BatchByTest.php | 2 +- .../Integration/DataFrame/BranchingTest.php | 6 +- .../DataFrame/DuplicateRowTest.php | 4 +- .../Integration/DataFrame/EmptySourceTest.php | 2 +- .../Integration/DataFrame/GroupByTest.php | 8 +- .../Tests/Integration/DataFrame/LimitTest.php | 2 +- .../Tests/Integration/DataFrame/MathTest.php | 4 +- .../Integration/DataFrame/OffsetTest.php | 4 +- .../DataFrame/PartitioningTest.php | 4 +- .../Integration/DataFrame/PlanBindTest.php | 24 ++-- .../Integration/DataFrame/RenameTest.php | 4 +- .../DataFrame/ReplaceNullsTest.php | 4 +- .../SinkRootBlockingOperationsTest.php | 4 +- .../Integration/DataFrame/SinkRootTest.php | 2 +- .../Tests/Integration/DataFrame/SortTest.php | 2 +- .../Integration/DataFrame/TelemetryTest.php | 22 ++-- .../Integration/DataFrame/TransformTest.php | 32 +++--- .../Integration/DataFrame/WithColumnTest.php | 66 +++++++++++ ...riesTest.php => AddDynamicColumnsTest.php} | 4 +- .../Integration/Function/AddJsonTest.php | 12 +- .../Tests/Integration/Function/AllTest.php | 2 +- .../Tests/Integration/Function/AnyTest.php | 2 +- .../Tests/Integration/Function/AppendTest.php | 2 +- .../Integration/Function/ArrayExpandTest.php | 46 ++++---- .../Function/ArrayGetCollectionTest.php | 2 +- .../Integration/Function/ArrayGetTest.php | 4 +- .../Function/ArrayKeyRenameTest.php | 2 +- .../Function/ArrayKeysStyleConvertTest.php | 4 +- .../Function/ArrayMergeCollectionTest.php | 2 +- .../Integration/Function/ArrayMergeTest.php | 2 +- .../Function/ArrayPathExistsTest.php | 4 +- .../Integration/Function/ArrayReverseTest.php | 2 +- .../Integration/Function/ArraySortTest.php | 2 +- .../Integration/Function/ArrayUnpackTest.php | 2 +- .../Integration/Function/BetweenTest.php | 4 +- .../Function/BinaryComparisonsTest.php | 28 ++--- .../Integration/Function/BinaryLengthTest.php | 2 +- .../Integration/Function/CallUserFuncTest.php | 2 +- .../Integration/Function/CapitalizeTest.php | 2 +- .../Tests/Integration/Function/CastTest.php | 8 +- .../Tests/Integration/Function/ChunkTest.php | 4 +- .../Function/CodePointLengthTest.php | 2 +- .../Function/CollapseWhitespaceTest.php | 2 +- .../Integration/Function/CombineTest.php | 2 +- .../Tests/Integration/Function/ConcatTest.php | 6 +- .../Function/ConcatWithSeparatorTest.php | 8 +- .../Integration/Function/ContainsTest.php | 10 +- .../Function/DOMElementAttributeValueTest.php | 6 +- .../Function/DOMElementNextSiblingTest.php | 18 +-- .../Function/DOMElementParentTest.php | 6 +- .../DOMElementPreviousSiblingTest.php | 16 +-- .../Function/DOMElementValueTest.php | 10 +- .../Integration/Function/EndsWithTest.php | 6 +- .../Integration/Function/EnsureEndTest.php | 2 +- .../Integration/Function/EnsureStartTest.php | 2 +- .../Integration/Function/EnumNameTest.php | 6 +- .../Integration/Function/EnumValueTest.php | 8 +- .../Function/HTMLQuerySelectorAllTest.php | 4 +- .../Function/HTMLQuerySelectorTest.php | 8 +- .../Tests/Integration/Function/HashTest.php | 4 +- .../Integration/Function/IndexOfLastTest.php | 2 +- .../Integration/Function/IsEmptyTest.php | 2 +- .../Integration/Function/JsonDecodeTest.php | 4 +- .../Integration/Function/JsonEncodeTest.php | 8 +- .../Integration/Function/ListSelectTest.php | 2 +- .../Integration/Function/MatchCasesTest.php | 2 +- .../Function/ModifyDateTimeTest.php | 6 +- .../Tests/Integration/Function/NotTest.php | 2 +- .../Tests/Integration/Function/OnEachTest.php | 2 +- .../Integration/Function/PrependTest.php | 2 +- .../Integration/Function/RegexAllTest.php | 6 +- .../Function/RegexMatchAllTest.php | 8 +- .../Integration/Function/RegexMatchTest.php | 6 +- .../Integration/Function/RegexReplaceTest.php | 6 +- .../Tests/Integration/Function/RegexTest.php | 6 +- .../Tests/Integration/Function/RepeatTest.php | 4 +- .../Integration/Function/ReverseTest.php | 2 +- .../Integration/Function/SanitizeTest.php | 6 +- .../Tests/Integration/Function/SizeTest.php | 4 +- .../Tests/Integration/Function/SplitTest.php | 6 +- .../Integration/Function/SprintfTest.php | 6 +- .../Integration/Function/StartsWithTest.php | 6 +- .../Tests/Integration/Function/StrPadTest.php | 2 +- .../Integration/Function/StrReplaceTest.php | 2 +- .../Function/StringContainsAnyTest.php | 2 +- .../Function/StringEqualsToTest.php | 2 +- .../Function/StringMatchAllTest.php | 2 +- .../Integration/Function/StringMatchTest.php | 2 +- .../Function/StringNormalizeTest.php | 2 +- .../Integration/Function/StringWidthTest.php | 2 +- .../Structure/StructureSelectTest.php | 2 +- .../Function/Structure/StructureTest.php | 6 +- .../Integration/Function/ToLowerTest.php | 2 +- .../Integration/Function/ToUpperTest.php | 2 +- .../Tests/Integration/Function/TrimTest.php | 8 +- .../Integration/Function/TruncateTest.php | 4 +- .../Function/UnicodeLengthTest.php | 2 +- .../Function/UntypedIntermediateTest.php | 4 +- .../Tests/Integration/Function/WhenTest.php | 2 +- .../Integration/Function/WordwrapTest.php | 2 +- .../Window/WindowFunctionsTest.php | 8 +- .../Flow/ETL/Tests/Mother/NodeMother.php | 4 +- .../Flow/ETL/Tests/Mother/RowsMother.php | 2 +- .../Tests/Unit/Bucketing/KeyValuesTest.php | 2 +- .../ETL/Tests/Unit/Cache/CacheIndexTest.php | 4 +- .../Flow/ETL/Tests/Unit/DataFrameTest.php | 18 +-- .../ETL/Tests/Unit/ETLErrorHandlingTest.php | 2 +- .../Exception/InvalidLogicExceptionTest.php | 2 +- .../SchemaDefinitionNotFoundExceptionTest.php | 6 +- .../Flow/ETL/Tests/Unit/ExecutorTest.php | 12 +- .../Unit/Extractor/DataFrameExtractorTest.php | 2 +- .../AllFunctionsDeclareTheirTypeTest.php | 2 +- .../Unit/Function/ArrayGetCollectionTest.php | 2 +- .../ETL/Tests/Unit/Function/ArrayGetTest.php | 2 +- .../Unit/Function/ArrayKeyRenameTest.php | 4 +- .../Unit/Function/Evaluation/FilterTest.php | 2 +- .../Unit/Function/ExpandingFunctionsTest.php | 4 +- .../ETL/Tests/Unit/Function/OnEachTest.php | 2 +- .../Unit/Function/ReferenceResolverTest.php | 2 +- .../Tests/Unit/GroupBy/AggregatorsTest.php | 2 +- .../GroupBy/DiscoveredPivotValuesTest.php | 2 +- .../Tests/Unit/GroupBy/GroupByShapeTest.php | 4 +- .../Tests/Unit/GroupBy/GroupByStepsTest.php | 4 +- .../ETL/Tests/Unit/GroupBy/PivotShapeTest.php | 4 +- .../tests/Flow/ETL/Tests/Unit/GroupByTest.php | 2 +- .../Tests/Unit/Join/HashJoin/JoinerTest.php | 2 +- .../Unit/Join/HashJoin/RowMergerTest.php | 8 +- .../ETL/Tests/Unit/Join/JoinSchemaTest.php | 4 +- .../Flow/ETL/Tests/Unit/Join/RowsJoinTest.php | 8 +- .../Tests/Unit/Optimizer/FilterWalkTest.php | 6 +- .../Rule/CountFromStatisticsTest.php | 2 +- .../Rule/PushFilterIntoSourceTest.php | 14 +-- .../ETL/Tests/Unit/Plan/LogicalPlanTest.php | 2 +- .../ETL/Tests/Unit/Plan/Node/DistinctTest.php | 4 +- .../ETL/Tests/Unit/Plan/Node/DropTest.php | 2 +- .../Tests/Unit/Plan/Node/DuplicateRowTest.php | 12 +- .../Tests/Unit/Plan/Node/ExpandColumnTest.php | 2 +- .../Tests/Unit/Plan/Node/RenameEachTest.php | 8 +- .../ETL/Tests/Unit/Plan/Node/SelectTest.php | 2 +- .../Tests/Unit/Plan/Node/TransformTest.php | 8 +- .../Tests/Unit/Plan/Node/WindowColumnTest.php | 2 +- .../Tests/Unit/Plan/Node/WithColumnTest.php | 4 +- .../ETL/Tests/Unit/Plan/TransformUpTest.php | 4 +- .../Tests/Unit/Planner/NodeTranslatorTest.php | 30 ++--- .../Tests/Unit/Planner/PipelineSplitTest.php | 12 +- .../tests/Flow/ETL/Tests/Unit/PlannerTest.php | 10 +- .../Unit/Processor/ExpandingProcessorTest.php | 4 +- .../Unit/Processor/HashJoinProcessorTest.php | 2 +- .../Unit/Processor/WindowProcessorTest.php | 6 +- .../ETL/Tests/Unit/Rows/ArrayToRowsTest.php | 4 +- .../Definition/BooleanDefinitionTest.php | 4 +- .../Unit/Schema/Definition/CommonTypeTest.php | 2 +- .../Schema/Definition/DateDefinitionTest.php | 4 +- .../Definition/DateTimeDefinitionTest.php | 4 +- .../Schema/Definition/EnumDefinitionTest.php | 4 +- .../Schema/Definition/FloatDefinitionTest.php | 4 +- .../Schema/Definition/HTMLDefinitionTest.php | 4 +- .../Definition/HTMLElementDefinitionTest.php | 4 +- .../Definition/IntegerDefinitionTest.php | 4 +- .../Schema/Definition/JsonDefinitionTest.php | 4 +- .../Schema/Definition/ListDefinitionTest.php | 4 +- .../Schema/Definition/MapDefinitionTest.php | 4 +- .../Schema/Definition/NullDefinitionTest.php | 4 +- .../Definition/StringDefinitionTest.php | 4 +- .../Definition/StructureDefinitionTest.php | 4 +- .../Schema/Definition/TimeDefinitionTest.php | 4 +- .../Definition/TimeZoneDefinitionTest.php | 4 +- .../Schema/Definition/UuidDefinitionTest.php | 4 +- .../Schema/Definition/XMLDefinitionTest.php | 4 +- .../Definition/XMLElementDefinitionTest.php | 4 +- .../Unit/Schema/Inference/ColumnTypesTest.php | 2 +- .../Flow/ETL/Tests/Unit/Schema/SchemaTest.php | 8 +- .../AddRowIndexTransformerTest.php | 2 +- ...est.php => DropColumnsTransformerTest.php} | 12 +- .../DropDuplicatesTransformerTest.php | 2 +- .../DuplicateRowTransformerTest.php | 40 ++++--- ...st.php => PruneColumnsTransformerTest.php} | 14 +-- ...st.php => RenameMapColumnStrategyTest.php} | 2 +- ...st.php => RenameColumnTransformerTest.php} | 18 +-- ...hp => RenameEachColumnTransformerTest.php} | 26 ++--- .../ScalarFunctionFilterTransformerTest.php | 4 +- .../ScalarFunctionTransformer/MathTest.php | 22 ++-- .../ScalarFunctionTransformerTest.php | 8 +- ...t.php => SelectColumnsTransformerTest.php} | 22 ++-- .../Unit/Transformer/UntilTransformerTest.php | 2 +- .../Floe/Tests/Context/FloeGoldenContext.php | 2 +- ...entry-types.floe => all-column-types.floe} | Bin .../Tests/Integration/FloeDataFrameTest.php | 2 +- .../Tests/Integration/FloeExtractorTest.php | 4 +- .../Integration/FloeStreamReaderTest.php | 4 +- .../Flow/Floe/Tests/Mother/RowsMother.php | 2 +- .../Flow/Floe/Tests/Unit/FloeReaderTest.php | 4 +- .../Floe/Tests/Unit/FloeSerializerTest.php | 6 +- .../Tests/Unit/FloeValueRoundTripTest.php | 28 ++--- .../Flow/Floe/Tests/Unit/FrameDecoderTest.php | 2 +- .../crates/flow-batch-frame/tests/kind.rs | 2 +- src/extension/flow-php-ext/src/backend.rs | 4 +- .../tests/phpt/082_write_no_leaks.phpt | 2 +- .../codemirror/completions/dataframe.js | 90 ++++++++++----- .../assets/codemirror/completions/dsl.js | 106 ++++++++--------- .../completions/scalarfunctionchain.js | 10 +- web/landing/assets/wasm/tools/flow.phar | Bin 4200358 -> 4206158 bytes .../topics/batching/column_backend/code.php | 2 +- .../examples/topics/caching/cache/code.php | 4 +- .../examples/topics/columns/create/code.php | 4 +- .../topics/columns/create/description.md | 2 +- .../examples/topics/errors/ignore/code.php | 2 +- .../examples/topics/errors/skip_rows/code.php | 2 +- .../examples/topics/errors/throw/code.php | 2 +- .../examples/topics/filesystem/s3/code.php | 2 +- .../04_schema_before_running/code.php | 2 +- .../partitioning/path_partitions/code.php | 2 +- .../topics/reading/data_frame/code.php | 2 +- .../examples/topics/reading/http/code.php | 6 +- .../examples/topics/reading/xml/code.php | 6 +- .../transformations/array/expand/code.php | 4 +- .../transformations/array/unpack/code.php | 2 +- .../topics/transformations/call/code.php | 2 +- .../topics/transformations/custom/code.php | 2 +- .../transformations/filtering/divide/code.php | 2 +- .../topics/transformations/literals/code.php | 2 +- .../topics/transformations/match/code.php | 2 +- .../topics/transformations/math/code.php | 2 +- .../topics/transformations/size/code.php | 2 +- .../transformations/when/basic/code.php | 2 +- .../transformations/when/else_when/code.php | 2 +- .../topics/transformations/when/null/code.php | 2 +- .../topics/transformations/when/odd/code.php | 2 +- .../window_functions/dense_rank/code.php | 2 +- .../topics/window_functions/frames/code.php | 4 +- .../topics/window_functions/rank/code.php | 2 +- .../window_functions/row_number/code.php | 2 +- .../examples/topics/writing/text/code.php | 2 +- web/landing/resources/api.json | 2 +- web/landing/resources/dsl.json | 2 +- .../GenerateDataFrameCompleterCommand.php | 4 +- .../Command/GenerateFlowCompleterCommand.php | 2 +- .../src/Flow/Website/Service/Examples.php | 2 +- .../src/Flow/Website/Service/Github.php | 8 +- .../Website/Service/Manifest/Manifest.php | 6 +- .../Website/Service/Manifest/PackageMeta.php | 6 +- .../Service/Markdown/FlowManifestRenderer.php | 6 +- .../GenerateDataFrameCompleterCommandTest.php | 2 +- .../Unit/Service/Manifest/ManifestTest.php | 8 +- 455 files changed, 1731 insertions(+), 1552 deletions(-) rename src/adapter/etl-adapter-postgresql/src/Flow/ETL/Adapter/PostgreSql/{EntryTypesMap.php => TypesMap.php} (99%) rename src/adapter/etl-adapter-postgresql/tests/Flow/ETL/Adapter/PostgreSql/Tests/Unit/{EntryTypesMapTest.php => TypesMapTest.php} (83%) rename src/adapter/etl-adapter-seal/tests/Flow/ETL/Adapter/Seal/Tests/Integration/{SealAllEntryTypesTest.php => SealAllColumnTypesTest.php} (94%) create mode 100644 src/cli/tests/Flow/CLI/Tests/Integration/Fixtures/pointer.json rename src/core/etl/src/Flow/ETL/Exception/{DuplicatedEntriesException.php => DuplicatedColumnsException.php} (53%) rename src/core/etl/src/Flow/ETL/Transformer/{DropEntriesTransformer.php => DropColumnsTransformer.php} (95%) rename src/core/etl/src/Flow/ETL/Transformer/{PruneEntriesTransformer.php => PruneColumnsTransformer.php} (93%) rename src/core/etl/src/Flow/ETL/Transformer/Rename/{RenameCaseEntryStrategy.php => RenameCaseColumnStrategy.php} (87%) rename src/core/etl/src/Flow/ETL/Transformer/Rename/{RenameEntryStrategy.php => RenameColumnStrategy.php} (90%) rename src/core/etl/src/Flow/ETL/Transformer/Rename/{RenameMapEntryStrategy.php => RenameMapColumnStrategy.php} (86%) rename src/core/etl/src/Flow/ETL/Transformer/Rename/{RenameReplaceEntryStrategy.php => RenameReplaceColumnStrategy.php} (89%) rename src/core/etl/src/Flow/ETL/Transformer/{RenameEntryTransformer.php => RenameColumnTransformer.php} (95%) rename src/core/etl/src/Flow/ETL/Transformer/{RenameEachEntryTransformer.php => RenameEachColumnTransformer.php} (84%) rename src/core/etl/src/Flow/ETL/Transformer/{SelectEntriesTransformer.php => SelectColumnsTransformer.php} (95%) rename src/core/etl/src/Flow/ETL/{WithEntry.php => WithColumn.php} (86%) rename src/core/etl/tests/Flow/ETL/Tests/Double/{AddStampToStringEntryTransformer.php => AddStampToStringColumnTransformer.php} (71%) create mode 100644 src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/WithColumnTest.php rename src/core/etl/tests/Flow/ETL/Tests/Integration/Function/{AddDynamicEntriesTest.php => AddDynamicColumnsTest.php} (85%) rename src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/{DropEntriesTransformerTest.php => DropColumnsTransformerTest.php} (83%) rename src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/{PruneEntriesTransformerTest.php => PruneColumnsTransformerTest.php} (83%) rename src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/Rename/{RenameMapEntryStrategyTest.php => RenameMapColumnStrategyTest.php} (95%) rename src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/{RenameEntryTransformerTest.php => RenameColumnTransformerTest.php} (84%) rename src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/{RenameEachEntryTransformerTest.php => RenameEachColumnTransformerTest.php} (65%) rename src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/{SelectEntriesTransformerTest.php => SelectColumnsTransformerTest.php} (83%) rename src/core/etl/tests/Flow/Floe/Tests/Fixtures/v2/{all-entry-types.floe => all-column-types.floe} (100%) diff --git a/benchmarks/src/Joining/JoinEachScenario.php b/benchmarks/src/Joining/JoinEachScenario.php index 89b136d19e..55ead80482 100644 --- a/benchmarks/src/Joining/JoinEachScenario.php +++ b/benchmarks/src/Joining/JoinEachScenario.php @@ -24,7 +24,7 @@ public function run(): void data_frame(BenchmarkConfig::builder()) ->read(from_floe(Datasets::orders($this->rows)->floe())) ->batchSize(1000) - ->withEntry('seller_id', ref('seller_id')->cast(type_string())) + ->withColumn('seller_id', ref('seller_id')->cast(type_string())) ->joinEach(new SellersDataFrameFactory(Datasets::sellers($this->rows)->parquet()), join_on([ 'seller_id' => 'id', ], join_prefix: 'sellers_')) diff --git a/benchmarks/src/Joining/JoinOrdersWithSellersScenario.php b/benchmarks/src/Joining/JoinOrdersWithSellersScenario.php index f8617d37ee..3e44503240 100644 --- a/benchmarks/src/Joining/JoinOrdersWithSellersScenario.php +++ b/benchmarks/src/Joining/JoinOrdersWithSellersScenario.php @@ -27,7 +27,7 @@ public function run(): void data_frame(BenchmarkConfig::builder()) ->read(from_floe(Datasets::orders($this->rows)->floe())) ->batchSize(1000) - ->withEntry('seller_id', ref('seller_id')->cast(type_string())) + ->withColumn('seller_id', ref('seller_id')->cast(type_string())) ->join( data_frame()->read(from_parquet(Datasets::sellers($this->rows)->parquet())), join_on(['seller_id' => 'id'], join_prefix: 'sellers_'), diff --git a/benchmarks/src/Partitioning/PartitionCardinality.php b/benchmarks/src/Partitioning/PartitionCardinality.php index 64aa7b6d2f..b6fb6f685c 100644 --- a/benchmarks/src/Partitioning/PartitionCardinality.php +++ b/benchmarks/src/Partitioning/PartitionCardinality.php @@ -32,7 +32,7 @@ public function column(): string */ public function derive(DataFrame $frame): DataFrame { - return $frame->withEntry('day', ref('created_at')->dateFormat('Y-m-d')); + return $frame->withColumn('day', ref('created_at')->dateFormat('Y-m-d')); } public function reference(): Reference diff --git a/benchmarks/src/Pipeline/CanonicalPipeline.php b/benchmarks/src/Pipeline/CanonicalPipeline.php index f0baa110df..3fc498193c 100644 --- a/benchmarks/src/Pipeline/CanonicalPipeline.php +++ b/benchmarks/src/Pipeline/CanonicalPipeline.php @@ -18,7 +18,7 @@ * The one pipeline shape every source is measured through, so a source's number differs only by its * read leg. Every subject that claims to be comparable with the others must run through here. * - * withEntry is the only verb that adds a column, so it forces schema widening at plan-bind time. + * withColumn is the only verb that adds a column, so it forces schema widening at plan-bind time. * filter is deliberately non-selective - created_at is never null - so the row count reaching the sink * cannot move for a second reason. select re-converges every source onto the same five columns, so the * sink does identical work whatever was read. Floe stores typed values, adding no stringification the @@ -42,7 +42,7 @@ public function run(): void { data_frame(BenchmarkConfig::builder()) ->read($this->extractor) - ->withEntry('contact', ref('customer')->concat(lit(' <'), ref('email'), lit('>'))) + ->withColumn('contact', ref('customer')->concat(lit(' <'), ref('email'), lit('>'))) ->filter(ref('created_at')->isNotNull()) ->select('order_id', 'seller_id', 'created_at', 'customer', 'contact') ->write(to_floe($this->sink)) diff --git a/benchmarks/src/Pipeline/NodePipelineScenario.php b/benchmarks/src/Pipeline/NodePipelineScenario.php index a18030dd5a..bacfc75d5e 100644 --- a/benchmarks/src/Pipeline/NodePipelineScenario.php +++ b/benchmarks/src/Pipeline/NodePipelineScenario.php @@ -46,10 +46,10 @@ public function run(): void ->read(from_xml($this->source->path($this->rows), self::XML_NODE_PATH)->withSchema(schema(xml_schema( 'node', )))) - ->withEntry('body', ref('node')->cast(type_string())), + ->withColumn('body', ref('node')->cast(type_string())), NodeSource::text => data_frame(BenchmarkConfig::builder()) ->read(from_text($this->source->path($this->rows))->withSchema(schema(str_schema('text')))) - ->withEntry('body', ref('text')->concat(lit(' |'))), + ->withColumn('body', ref('text')->concat(lit(' |'))), }; $frame diff --git a/benchmarks/src/Pipeline/PlanDepthScenario.php b/benchmarks/src/Pipeline/PlanDepthScenario.php index 681f3644f3..dabe473ce9 100644 --- a/benchmarks/src/Pipeline/PlanDepthScenario.php +++ b/benchmarks/src/Pipeline/PlanDepthScenario.php @@ -13,7 +13,7 @@ /** * schema() answers from the plan without executing it, so this prices Planner::plan() alone (optimize, translate, - * bind, split) rather than $depth withEntry calls per row. + * bind, split) rather than $depth withColumn calls per row. * * One call plans PLANS identical plans, because a single plan is far below timer resolution. */ @@ -33,7 +33,7 @@ public function bind(): Schema ->read((new SourceExtractor($this->source, SchemaMode::declared, $this->rows))->extractor()); for ($step = 0; $step < $this->depth; $step++) { - $frame = $frame->withEntry('c' . $step, ref('customer')->concat(lit((string) $step))); + $frame = $frame->withColumn('c' . $step, ref('customer')->concat(lit((string) $step))); } return $frame->schema(); diff --git a/benchmarks/src/Service/Seal/SealWriteScenario.php b/benchmarks/src/Service/Seal/SealWriteScenario.php index c1edbf3c21..1e48e8f223 100644 --- a/benchmarks/src/Service/Seal/SealWriteScenario.php +++ b/benchmarks/src/Service/Seal/SealWriteScenario.php @@ -38,7 +38,7 @@ public function run(): void data_frame() ->read(from_floe(Datasets::orders($this->rows)->floe())) ->batchSize(1000) - ->write(to_seal_upsert($engine, $this->index())->withIdentifierEntry('order_id')->withBulkSize(1000)) + ->write(to_seal_upsert($engine, $this->index())->withIdentifierColumn('order_id')->withBulkSize(1000)) ->run(); } diff --git a/benchmarks/src/Window/MovingAverageScenario.php b/benchmarks/src/Window/MovingAverageScenario.php index cb0ff4bd16..14acbc33f7 100644 --- a/benchmarks/src/Window/MovingAverageScenario.php +++ b/benchmarks/src/Window/MovingAverageScenario.php @@ -29,7 +29,7 @@ public function run(): void $partitioning ->derive(data_frame(BenchmarkConfig::builder())->read(from_floe(Datasets::orders($this->rows)->floe()))) - ->withEntry( + ->withColumn( 'moving_average', average(ref('discount')) ->over( diff --git a/benchmarks/src/Window/RankScenario.php b/benchmarks/src/Window/RankScenario.php index ddc56ee370..2d8699ffc5 100644 --- a/benchmarks/src/Window/RankScenario.php +++ b/benchmarks/src/Window/RankScenario.php @@ -27,7 +27,7 @@ public function run(): void $partitioning ->derive(data_frame(BenchmarkConfig::builder())->read(from_floe(Datasets::orders($this->rows)->floe()))) - ->withEntry( + ->withColumn( 'rank', rank()->over(window()->partitionBy($partitioning->reference())->orderBy(ref('created_at'))), ) diff --git a/benchmarks/src/Window/RowNumberScenario.php b/benchmarks/src/Window/RowNumberScenario.php index 3fe30d197d..4c169cb359 100644 --- a/benchmarks/src/Window/RowNumberScenario.php +++ b/benchmarks/src/Window/RowNumberScenario.php @@ -27,7 +27,7 @@ public function run(): void $partitioning ->derive(data_frame(BenchmarkConfig::builder())->read(from_floe(Datasets::orders($this->rows)->floe()))) - ->withEntry( + ->withColumn( 'row_number', row_number()->over(window()->partitionBy($partitioning->reference())->orderBy(ref('created_at'))), ) diff --git a/benchmarks/src/Window/RunningTotalScenario.php b/benchmarks/src/Window/RunningTotalScenario.php index aa5bda4a71..0535cfcc8b 100644 --- a/benchmarks/src/Window/RunningTotalScenario.php +++ b/benchmarks/src/Window/RunningTotalScenario.php @@ -27,7 +27,7 @@ public function run(): void $partitioning ->derive(data_frame(BenchmarkConfig::builder())->read(from_floe(Datasets::orders($this->rows)->floe()))) - ->withEntry( + ->withColumn( 'running_total', sum(ref('discount')) ->over(window()->partitionBy($partitioning->reference())->orderBy(ref('created_at'))), diff --git a/benchmarks/src/Window/WholePartitionScenario.php b/benchmarks/src/Window/WholePartitionScenario.php index 58f11291d7..58f25e58f9 100644 --- a/benchmarks/src/Window/WholePartitionScenario.php +++ b/benchmarks/src/Window/WholePartitionScenario.php @@ -27,7 +27,7 @@ public function run(): void $partitioning ->derive(data_frame(BenchmarkConfig::builder())->read(from_floe(Datasets::orders($this->rows)->floe()))) - ->withEntry('seller_total', sum(ref('discount'))->over(window()->partitionBy($partitioning->reference()))) + ->withColumn('seller_total', sum(ref('discount'))->over(window()->partitionBy($partitioning->reference()))) ->run(); } } diff --git a/benchmarks/suites/Pipeline/OrdersPipelineBench.php b/benchmarks/suites/Pipeline/OrdersPipelineBench.php index f2410a8ad5..be6ceefd5e 100644 --- a/benchmarks/suites/Pipeline/OrdersPipelineBench.php +++ b/benchmarks/suites/Pipeline/OrdersPipelineBench.php @@ -9,7 +9,7 @@ use PhpBench\Attributes as Bench; /** - * Rung 4 of the ladder: read -> withEntry -> filter -> select -> write, one subject per source. + * Rung 4 of the ladder: read -> withColumn -> filter -> select -> write, one subject per source. * * Parquet, Floe, Doctrine and PostgreSQL have no inferred arm on purpose. They declare from metadata * (footer / driver describe-query) and never sample, so the inferred-vs-declared comparison is diff --git a/benchmarks/tests/Flow/Benchmarks/Tests/Unit/Pipeline/OrdersSchemaTest.php b/benchmarks/tests/Flow/Benchmarks/Tests/Unit/Pipeline/OrdersSchemaTest.php index b960da8976..424b2b1a87 100644 --- a/benchmarks/tests/Flow/Benchmarks/Tests/Unit/Pipeline/OrdersSchemaTest.php +++ b/benchmarks/tests/Flow/Benchmarks/Tests/Unit/Pipeline/OrdersSchemaTest.php @@ -29,7 +29,7 @@ public function test_every_column_is_nullable_on_every_source(): void { foreach (Source::cases() as $source) { foreach (OrdersSchema::of($source)->definitions() as $definition) { - static::assertTrue($definition->isNullable(), $source->value . '.' . $definition->entry()->name()); + static::assertTrue($definition->isNullable(), $source->value . '.' . $definition->reference()->name()); } } } @@ -40,7 +40,7 @@ public function test_the_five_projected_columns_exist_on_every_source(): void $names = []; foreach (OrdersSchema::of($source)->definitions() as $definition) { - $names[] = $definition->entry()->name(); + $names[] = $definition->reference()->name(); } foreach (['order_id', 'seller_id', 'created_at', 'customer', 'email'] as $projected) { diff --git a/documentation/adrs/variadic-arguments-pattern.md b/documentation/adrs/variadic-arguments-pattern.md index e676a2dc7c..3db551b053 100644 --- a/documentation/adrs/variadic-arguments-pattern.md +++ b/documentation/adrs/variadic-arguments-pattern.md @@ -17,13 +17,13 @@ Several Flow PHP methods accept multiple arguments where at least one is require A proposal was made to simplify the API signatures from: ```php ignore -public function partitionBy(string|Reference $entry, string|Reference ...$entries) : self +public function partitionBy(string|Reference $column, string|Reference ...$columns) : self ``` To: ```php ignore -public function partitionBy(string|Reference ...$entries) : self +public function partitionBy(string|Reference ...$columns) : self ``` The rationale for the proposal was to reduce array operations like `array_unshift()` used internally to merge the first required argument with the variadic rest. @@ -67,10 +67,10 @@ public function method(Type ...$args) : ReturnType ### 1. Pure variadic with runtime validation ```php ignore -public function partitionBy(string|Reference ...$entries) : self +public function partitionBy(string|Reference ...$columns) : self { - if ([] === $entries) { - throw new InvalidArgumentException('At least one entry is required.'); + if ([] === $columns) { + throw new InvalidArgumentException('At least one column is required.'); } // ... } diff --git a/documentation/components/adapters/chartjs.md b/documentation/components/adapters/chartjs.md index 876aa07292..8d9531e530 100644 --- a/documentation/components/adapters/chartjs.md +++ b/documentation/components/adapters/chartjs.md @@ -43,7 +43,7 @@ $data = [ df() ->read(from_array($data)) - ->withEntry('Profit', ref('Revenue')->minus(ref('CM'))->minus(ref('Ads Spends'))->minus(ref('Storage Costs'))->minus(ref('Shipping Costs'))->round(lit(2))) + ->withColumn('Profit', ref('Revenue')->minus(ref('CM'))->minus(ref('Ads Spends'))->minus(ref('Storage Costs'))->minus(ref('Shipping Costs'))->round(lit(2))) ->write( to_chartjs_file( $chart = bar_chart( diff --git a/documentation/components/adapters/excel.md b/documentation/components/adapters/excel.md index 6d34b653e4..4163f09f88 100644 --- a/documentation/components/adapters/excel.md +++ b/documentation/components/adapters/excel.md @@ -186,7 +186,7 @@ Write each row to the sheet named by its `category` value: withSheetNameFromEntry('category'); + ->withSheetNameFromColumn('category'); data_frame() ->read($extractor) diff --git a/documentation/components/adapters/parquet.md b/documentation/components/adapters/parquet.md index ea956d03d6..1dafcd9f6a 100644 --- a/documentation/components/adapters/parquet.md +++ b/documentation/components/adapters/parquet.md @@ -67,8 +67,8 @@ use function Flow\Types\DSL\type_json; data_frame() ->read(from_parquet(__DIR__ . '/orders.parquet', columns: ['id', 'payload', 'created_at'])) - ->withEntry('payload', ref('payload')->cast(type_json())) - ->withEntry('created_at', to_timezone(ref('created_at'), 'Europe/Warsaw')) + ->withColumn('payload', ref('payload')->cast(type_json())) + ->withColumn('created_at', to_timezone(ref('created_at'), 'Europe/Warsaw')) ->write(to_output()) ->run(); ``` diff --git a/documentation/components/adapters/postgresql.md b/documentation/components/adapters/postgresql.md index cccae8776f..966929145f 100644 --- a/documentation/components/adapters/postgresql.md +++ b/documentation/components/adapters/postgresql.md @@ -483,7 +483,7 @@ Two helpers convert between a Flow `Schema` and a PostgreSQL table definition: (and related index/constraint) SQL via `toSql()`. - `pgsql_table_to_flow_schema()` turns a `Flow\PostgreSql\Schema\Table` back into a Flow `Schema`. -Column types are resolved through the shared `EntryTypesMap` (Flow type → PostgreSQL column type), and per-column +Column types are resolved through the shared `TypesMap` (Flow type → PostgreSQL column type), and per-column details - primary keys, unique constraints, indexes, length, precision/scale, defaults, identity, generated columns, and explicit type overrides - are driven by `PostgreSqlMetadata` entries attached to each schema definition. @@ -625,11 +625,11 @@ $schema = pgsql_table_to_flow_schema($table); ### Customizing the Type Mapping -Both helpers accept an optional `EntryTypesMap`. Its second constructor argument overrides the Flow type → PostgreSQL +Both helpers accept an optional `TypesMap`. Its second constructor argument overrides the Flow type → PostgreSQL column type mapping (the first argument keeps overriding the value-binding types used by the loader): ```php -use Flow\ETL\Adapter\PostgreSql\EntryTypesMap; +use Flow\ETL\Adapter\PostgreSql\TypesMap; use Flow\PostgreSql\QueryBuilder\Schema\ColumnType; use Flow\Types\Type\Native\StringType; @@ -638,7 +638,7 @@ use function Flow\ETL\Adapter\PostgreSql\to_pgsql_schema_table; $table = to_pgsql_schema_table( $schema, 'users', - typesMap: new EntryTypesMap([], [ + typesMap: new TypesMap([], [ StringType::class => ColumnType::varchar(255), // default strings to varchar(255) instead of text ]), ); diff --git a/documentation/components/adapters/seal.md b/documentation/components/adapters/seal.md index f6b59d6d40..beb4c8b4cc 100644 --- a/documentation/components/adapters/seal.md +++ b/documentation/components/adapters/seal.md @@ -97,7 +97,7 @@ to_seal_upsert($engine, 'users')->withBulkSize(500); ### Deleting Documents -`to_seal_delete()` removes documents by their identifiers, read from the `id` column. `withIdentifierEntry()` names +`to_seal_delete()` removes documents by their identifiers, read from the `id` column. `withIdentifierColumn()` names another column. ```php @@ -111,7 +111,7 @@ data_frame() ``` ```php -to_seal_delete($engine, 'products')->withIdentifierEntry('sku'); +to_seal_delete($engine, 'products')->withIdentifierColumn('sku'); ``` ### Data Normalization diff --git a/documentation/components/adapters/xml.md b/documentation/components/adapters/xml.md index 627c52def1..7cf11cc085 100644 --- a/documentation/components/adapters/xml.md +++ b/documentation/components/adapters/xml.md @@ -45,7 +45,7 @@ use function Flow\ETL\DSL\{data_frame, ref, to_output}; data_frame() ->read(from_xml(__DIR__ . '/simple_items.xml')->withXMLNodePath('root/items/item')) - ->withEntry('id', ref('node')->xpath('id')->domElementValue()) + ->withColumn('id', ref('node')->xpath('id')->domElementValue()) ->write(to_output(truncate: false)) ->run(); ``` diff --git a/documentation/components/bridges/symfony-http-foundation-bridge.md b/documentation/components/bridges/symfony-http-foundation-bridge.md index 48f81b7c7f..c11f6454bd 100644 --- a/documentation/components/bridges/symfony-http-foundation-bridge.md +++ b/documentation/components/bridges/symfony-http-foundation-bridge.md @@ -96,7 +96,7 @@ use function Flow\ETL\DSL\lit; new class implements Transformation { public function transform(DataFrame $dataFrame): DataFrame { - return $dataFrame->withEntry('time', lit(\time())); + return $dataFrame->withColumn('time', lit(\time())); } }; ``` diff --git a/documentation/components/cli/docs.md b/documentation/components/cli/docs.md index dd6102054d..67ef00422d 100644 --- a/documentation/components/cli/docs.md +++ b/documentation/components/cli/docs.md @@ -112,7 +112,7 @@ Options: --analyze[=ANALYZE] Collect processing statistics and print them. [default: false] --config=CONFIG Path to a local php file that MUST return instance of: Flow\ETL\Config --input-json-pointer=INPUT-JSON-POINTER JSON Pointer to a subtree from which schema should be extracted - --input-json-pointer-entry-name When set, JSON Pointer will be used as an entry name in the schema + --input-json-pointer-column-name When set, JSON Pointer will be used as a column name in the schema --output-json-date-time-format=OUTPUT-JSON-DATE-TIME-FORMAT Date time format used in JSON output --output-json-rows-in-new-line When set, each row will be printed in a new line --input-csv-header[=INPUT-CSV-HEADER] When set, CSV header will be used as a schema @@ -174,7 +174,7 @@ Options: --output-ascii Print schema as ascii list --config=CONFIG Path to a local php file that MUST return instance of: Flow\ETL\Config --input-json-pointer=INPUT-JSON-POINTER JSON Pointer to a subtree from which schema should be extracted - --input-json-pointer-entry-name When set, JSON Pointer will be used as an entry name in the schema + --input-json-pointer-column-name When set, JSON Pointer will be used as a column name in the schema --input-csv-header[=INPUT-CSV-HEADER] When set, CSV header will be used as a schema --input-csv-empty-to-null[=INPUT-CSV-EMPTY-TO-NULL] When set, empty CSV values will be treated as NULL values --input-csv-separator=INPUT-CSV-SEPARATOR CSV separator character @@ -243,7 +243,7 @@ Options: --input-file-offset=INPUT-FILE-OFFSET Number of rows to skip before starting to read data --config=CONFIG Path to a local php file that MUST return instance of: Flow\ETL\Config --input-json-pointer=INPUT-JSON-POINTER JSON Pointer to a subtree from which schema should be extracted - --input-json-pointer-entry-name When set, JSON Pointer will be used as an entry name in the schema + --input-json-pointer-column-name When set, JSON Pointer will be used as a column name in the schema --input-csv-header[=INPUT-CSV-HEADER] When set, CSV header will be used as a schema --input-csv-empty-to-null[=INPUT-CSV-EMPTY-TO-NULL] When set, empty CSV values will be treated as NULL values --input-csv-separator=INPUT-CSV-SEPARATOR CSV separator character @@ -295,7 +295,7 @@ Options: --output-columns=OUTPUT-COLUMNS Columns to include in output, when not set all columns are displayed (multiple values allowed) --config=CONFIG Path to a local php file that MUST return instance of: Flow\ETL\Config --input-json-pointer=INPUT-JSON-POINTER JSON Pointer to a subtree from which schema should be extracted - --input-json-pointer-entry-name When set, JSON Pointer will be used as an entry name in the schema + --input-json-pointer-column-name When set, JSON Pointer will be used as a column name in the schema --input-csv-header[=INPUT-CSV-HEADER] When set, CSV header will be used as a schema --input-csv-empty-to-null[=INPUT-CSV-EMPTY-TO-NULL] When set, empty CSV values will be treated as NULL values --input-csv-separator=INPUT-CSV-SEPARATOR CSV separator character @@ -341,7 +341,7 @@ Options: --input-file-offset=INPUT-FILE-OFFSET Number of rows to skip before starting to read data --config=CONFIG Path to a local php file that MUST return instance of: Flow\ETL\Config --input-json-pointer=INPUT-JSON-POINTER JSON Pointer to a subtree from which schema should be extracted - --input-json-pointer-entry-name When set, JSON Pointer will be used as an entry name in the schema + --input-json-pointer-column-name When set, JSON Pointer will be used as a column name in the schema --input-excel-header[=INPUT-EXCEL-HEADER] When set, Excel header will be used as a schema --input-excel-sheet-name=INPUT-EXCEL-SHEET-NAME When set, Excel sheet name will be selected for reading --input-excel-offset=INPUT-EXCEL-OFFSET Offset to start reading from diff --git a/documentation/components/core/aggregations.md b/documentation/components/core/aggregations.md index f956cfff11..2ec311a3fb 100644 --- a/documentation/components/core/aggregations.md +++ b/documentation/components/core/aggregations.md @@ -50,9 +50,9 @@ use function Flow\ETL\DSL\{average, concat, data_frame, lit, max, min, ref, sum, data_frame() ->read(from_csv(__DIR__ . '/power-plant-daily.csv', separator: ';')) - ->withEntry('production_kwh', ref('Produkcja(kWh)')) - ->withEntry('consumption_kwh', ref('Zużycie(kWh)')) - ->withEntry('date', ref('Zaktualizowany czas')->toDate('Y/m/d')->dateFormat('Y/m')) + ->withColumn('production_kwh', ref('Produkcja(kWh)')) + ->withColumn('consumption_kwh', ref('Zużycie(kWh)')) + ->withColumn('date', ref('Zaktualizowany czas')->toDate('Y/m/d')->dateFormat('Y/m')) ->select('date', 'production_kwh', 'consumption_kwh') ->groupBy([ref('date')]) ->aggregate( @@ -65,17 +65,17 @@ data_frame() sum(ref('production_kwh')), sum(ref('consumption_kwh')) ) - ->withEntry('production_kwh_avg', ref('production_kwh_avg')->round(lit(2))) - ->withEntry('consumption_kwh_avg', ref('consumption_kwh_avg')->round(lit(2))) - ->withEntry('production_kwh_min', ref('production_kwh_min')->round(lit(2))) - ->withEntry('consumption_kwh_min', ref('consumption_kwh_min')->round(lit(2))) - ->withEntry('production_kwh_max', ref('production_kwh_max')->round(lit(2))) - ->withEntry('consumption_kwh_max', ref('consumption_kwh_max')->round(lit(2))) - ->withEntry('production_kwh_sum', ref('production_kwh_sum')->round(lit(2))) - ->withEntry('consumption_kwh_sum', ref('consumption_kwh_sum')->round(lit(2))) - ->withEntry('consumption', ref('consumption_kwh_sum')->divide(ref('production_kwh_sum'), 4, Rounding::HALF_UP)) - ->withEntry('consumption', ref('consumption')->multiply(lit(100))->round(lit(2))) - ->withEntry('consumption', concat(ref('consumption'), lit('%'))) + ->withColumn('production_kwh_avg', ref('production_kwh_avg')->round(lit(2))) + ->withColumn('consumption_kwh_avg', ref('consumption_kwh_avg')->round(lit(2))) + ->withColumn('production_kwh_min', ref('production_kwh_min')->round(lit(2))) + ->withColumn('consumption_kwh_min', ref('consumption_kwh_min')->round(lit(2))) + ->withColumn('production_kwh_max', ref('production_kwh_max')->round(lit(2))) + ->withColumn('consumption_kwh_max', ref('consumption_kwh_max')->round(lit(2))) + ->withColumn('production_kwh_sum', ref('production_kwh_sum')->round(lit(2))) + ->withColumn('consumption_kwh_sum', ref('consumption_kwh_sum')->round(lit(2))) + ->withColumn('consumption', ref('consumption_kwh_sum')->divide(ref('production_kwh_sum'), 4, Rounding::HALF_UP)) + ->withColumn('consumption', ref('consumption')->multiply(lit(100))->round(lit(2))) + ->withColumn('consumption', concat(ref('consumption'), lit('%'))) ->write(to_output(truncate: false)) ->run(); ``` \ No newline at end of file diff --git a/documentation/components/core/caching.md b/documentation/components/core/caching.md index 5053b0a47f..829084c6a0 100644 --- a/documentation/components/core/caching.md +++ b/documentation/components/core/caching.md @@ -27,7 +27,7 @@ data_frame() ['id' => 2, 'name' => 'jane'], ['id' => 3, 'name' => 'john'], ], schema(int_schema('id'), str_schema('name')))) - ->withEntry('name', ref('name')->upper()) + ->withColumn('name', ref('name')->upper()) ->cache() ->collect() ->write(to_output(truncate: false)) diff --git a/documentation/components/core/column-backend.md b/documentation/components/core/column-backend.md index 770f0763c9..7ac580e44b 100644 --- a/documentation/components/core/column-backend.md +++ b/documentation/components/core/column-backend.md @@ -19,7 +19,7 @@ use function Flow\ETL\DSL\{config_builder, data_frame, from_array, lit, ref}; $rows = data_frame(config_builder()->backend(new PhpBackend())) ->read(from_array([['id' => 1], ['id' => 2]])) - ->withEntry('double', ref('id')->multiply(lit(2))) + ->withColumn('double', ref('id')->multiply(lit(2))) ->fetch(); $rows->column('double')::class; // Flow\ETL\Column\Php\ScalarColumn @@ -43,7 +43,7 @@ Both produce the same values: `PhpBackend` is the reference implementation, the The configured backend builds every column a pipeline produces: - every batch an extractor yields: a batch built elsewhere is adopted (copied once) before the first step sees it, -- function results (`withEntry()`, `filter()`, `lit()`, ...), +- function results (`withColumn()`, `filter()`, `lit()`, ...), - joins, sorts, group-by, window and repartition outputs, including their spilled reads, - cache and Floe reads (the default `FloeSerializer` takes the same backend). diff --git a/documentation/components/core/core.md b/documentation/components/core/core.md index e97b4a1380..65229131c0 100644 --- a/documentation/components/core/core.md +++ b/documentation/components/core/core.md @@ -31,7 +31,7 @@ DataFrame methods fall into two categories based on when they execute: These methods build the processing pipeline without executing it immediately: -- **Transformations**: `filter()`, `withEntry()`, `select()`, `drop()`, `rename()`, `with()` +- **Transformations**: `filter()`, `withColumn()`, `select()`, `drop()`, `rename()`, `with()` - **Memory-intensive**: `collect()`, `sortBy()`, `groupBy()`, `join()`, `cache()` - **Processing control**: `batchSize()`, `limit()`, `offset()`, `partitionBy()` diff --git a/documentation/components/core/data-manipulation.md b/documentation/components/core/data-manipulation.md index dae7a62fc9..d48a346e08 100644 --- a/documentation/components/core/data-manipulation.md +++ b/documentation/components/core/data-manipulation.md @@ -37,7 +37,7 @@ data_frame() > the richest type that parses, so `'19.99'` read from a CSV infers as `?float`. Restrict the candidates with > `->types(...)`, or take strings only with `->allStrings()`. -## Adding Columns with withEntry() +## Adding Columns with withColumn() Add new columns or modify existing ones using expressions: @@ -51,8 +51,8 @@ data_frame() ['first_name' => 'John', 'last_name' => 'Doe', 'salary' => 50000], ['first_name' => 'Jane', 'last_name' => 'Smith', 'salary' => 60000], ])) - ->withEntry('full_name', concat(col('first_name'), lit(' '), col('last_name'))) - ->withEntry('annual_bonus', col('salary')->multiply(lit(0.1))) + ->withColumn('full_name', concat(col('first_name'), lit(' '), col('last_name'))) + ->withColumn('annual_bonus', col('salary')->multiply(lit(0.1))) ->write(to_output()) ->run(); ``` diff --git a/documentation/components/core/display.md b/documentation/components/core/display.md index f35ad21dfb..41276b25b6 100644 --- a/documentation/components/core/display.md +++ b/documentation/components/core/display.md @@ -21,7 +21,7 @@ echo data_frame() ['id' => 2, 'name' => 'jane'], ['id' => 3, 'name' => 'john'], ], schema(int_schema('id'), str_schema('name')))) - ->withEntry('name', ref('name')->upper()) + ->withColumn('name', ref('name')->upper()) ->collect() ->display($limit = 2); ``` @@ -48,7 +48,7 @@ data_frame() ['id' => 1, 'name' => 'norbert'], ['id' => 2, 'name' => 'jane'], ], schema(int_schema('id'), str_schema('name')))) - ->withEntry('name', ref('name')->upper()) + ->withColumn('name', ref('name')->upper()) ->collect() ->write(to_output(truncate: false)) ->run(); diff --git a/documentation/components/core/error-handling.md b/documentation/components/core/error-handling.md index b68c2b8b99..3e41836c51 100644 --- a/documentation/components/core/error-handling.md +++ b/documentation/components/core/error-handling.md @@ -76,7 +76,7 @@ data_frame() ['text' => 'hello'], ['text' => null], ])) - ->withEntry('upper', optional(ref('text')->upper())) + ->withColumn('upper', optional(ref('text')->upper())) ->write(to_stream(__DIR__ . '/output.csv', truncate: false)) ->run(); diff --git a/documentation/components/core/floe.md b/documentation/components/core/floe.md index ce04cafd09..4afa1566ee 100644 --- a/documentation/components/core/floe.md +++ b/documentation/components/core/floe.md @@ -52,7 +52,7 @@ use function Flow\Floe\DSL\from_floe; data_frame() ->read(from_floe(__DIR__ . '/output.floe')) - ->withEntry('at', to_timezone(ref('at'), 'Europe/Warsaw')) + ->withColumn('at', to_timezone(ref('at'), 'Europe/Warsaw')) ->write(to_output()) ->run(); ``` diff --git a/documentation/components/core/partitioning.md b/documentation/components/core/partitioning.md index 28420df672..92b844e7e2 100644 --- a/documentation/components/core/partitioning.md +++ b/documentation/components/core/partitioning.md @@ -150,7 +150,7 @@ data_frame() ['created_at' => new DateTimeImmutable('2024-01-01 09:00:00'), 'amount' => 100], ['created_at' => new DateTimeImmutable('2024-01-01 13:00:00'), 'amount' => 200], ])) - ->withEntry('day', ref('created_at')->cast(type_date())) + ->withColumn('day', ref('created_at')->cast(type_date())) ->write(to_parquet(__DIR__ . '/output/events.parquet') ->partitionBy(partition_by('day')) ->saveMode(overwrite())) @@ -272,7 +272,7 @@ The optimizer moves a `filter()` into the file source, which returns only matchi partition columns skips whole directories; a filter on a body column reads every file and drops the rows it does not match (Parquet skips row groups, see [filter pushdown](/documentation/components/adapters/parquet.md#filter-pushdown)). A `limit()` after the filter reaches the source with it ([filter pushdown](/documentation/components/adapters/parquet.md#filter-pushdown)). A partition column renamed -with `rename()` or copied with `withEntry('day', ref('date'))` is still pruned; any other redefinition of it +with `rename()` or copied with `withColumn('day', ref('date'))` is still pruned; any other redefinition of it stops the push. A filter whose answer can change between two evaluations - `call()`, `now()`, `uuid()`, `to_date_time()` with a format that leaves fields out (`'Y-m-d'`) - still filters rows but prunes nothing. diff --git a/documentation/components/core/pivot.md b/documentation/components/core/pivot.md index 2827a62d2c..30c117a176 100644 --- a/documentation/components/core/pivot.md +++ b/documentation/components/core/pivot.md @@ -95,7 +95,7 @@ column at all. `discover_pivot_values()` scans the pivot column once, before the plan runs, and resolves to the declared form. It scans **the frame as it stands at the `pivot()` call**, not the bare source - so the pivot column may be one -an earlier `withEntry()` produced, and an earlier `filter()` narrows which values exist: +an earlier `withColumn()` produced, and an earlier `filter()` narrows which values exist: ```php data_frame() diff --git a/documentation/components/core/transformations.md b/documentation/components/core/transformations.md index 0a3202c573..71e04398c3 100644 --- a/documentation/components/core/transformations.md +++ b/documentation/components/core/transformations.md @@ -272,7 +272,7 @@ sink. Three groups: |----------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------| | Grows with the whole stream | `sortBy()`, `aggregate()`, `groupBy()->aggregate()`, `pivot()`, window functions, `collect()`, `join()`, `repartition()` | | Grows with the number of distinct keys | `dropDuplicates()`, `constrain()` with a `UniqueConstraint` | -| Constant | `select()`, `withEntry()`, `filter()`, `add_row_index()`, `limit()`, `until()`, `offset()`, `cache($id)`, `batch_size()`, `batchBy()` | +| Constant | `select()`, `withColumn()`, `filter()`, `add_row_index()`, `limit()`, `until()`, `offset()`, `cache($id)`, `batch_size()`, `batchBy()` | The first group buffers - in memory, or spilled to disk by the external sort - exactly as it does on an outer frame. `offset()` and `cache($id)` are in the constant group: `offset()` counts the rows it skips, and `cache($id)` writes each @@ -326,7 +326,7 @@ final class UppercaseNames implements Transformation { public function transform(DataFrame $dataFrame): DataFrame { - return $dataFrame->withEntry( + return $dataFrame->withColumn( 'name', ref('name')->upper() ); diff --git a/documentation/components/core/window-functions.md b/documentation/components/core/window-functions.md index eeabdb7794..626e81e036 100644 --- a/documentation/components/core/window-functions.md +++ b/documentation/components/core/window-functions.md @@ -38,7 +38,7 @@ data_frame() ['id' => 6, 'name' => 'Janet', 'department' => 'Finances', 'salary' => 4000], ]) ) - ->withEntry('rank', dense_rank()->over(window()->partitionBy(ref('department'))->orderBy(ref('salary')->desc()))) + ->withColumn('rank', dense_rank()->over(window()->partitionBy(ref('department'))->orderBy(ref('salary')->desc()))) ->sortBy([ref('department'), ref('rank')]) ->write(to_output(false)) ->run(); @@ -148,7 +148,7 @@ data_frame() ['id' => 4, 'department' => 'IT', 'date' => '2024-01-04', 'salary' => 400], ]) ) - ->withEntry( + ->withColumn( 'moving_avg', average(ref('salary'))->over( window() diff --git a/documentation/introduction.md b/documentation/introduction.md index ab8b15453d..d08ff8a2b6 100644 --- a/documentation/introduction.md +++ b/documentation/introduction.md @@ -45,7 +45,7 @@ constant memory regardless of input size. Every Flow pipeline has three stages: - **Extract** - `->read(...)` pulls rows from a source (file, API, database). -- **Transform** - `->filter()`, `->withEntry()`, `->join()`, `->groupBy()`, +- **Transform** - `->filter()`, `->withColumn()`, `->join()`, `->groupBy()`, `->window()`, and friends shape the rows. - **Load** - `->write(...)` streams the result into a sink; `->run()` executes the whole thing. diff --git a/documentation/quick-start.md b/documentation/quick-start.md index 803ab93952..62bf7161d7 100644 --- a/documentation/quick-start.md +++ b/documentation/quick-start.md @@ -21,16 +21,16 @@ require __DIR__ . '/vendor/autoload.php'; data_frame() ->read(from_csv(__DIR__ . '/orders_flow.csv')) ->select('created_at', 'total_price', 'discount') - ->withEntry('created_at', ref('created_at')->cast('date')->dateFormat('Y/m')) - ->withEntry('revenue', ref('total_price')->minus(ref('discount'))) + ->withColumn('created_at', ref('created_at')->cast('date')->dateFormat('Y/m')) + ->withColumn('revenue', ref('total_price')->minus(ref('discount'))) ->select('created_at', 'revenue') ->groupBy(['created_at']) ->aggregate(sum(ref('revenue'))) ->sortBy([ref('created_at')->desc()]) - ->withEntry('daily_revenue', ref('revenue_sum')->round(lit(2))->numberFormat(lit(2))) + ->withColumn('daily_revenue', ref('revenue_sum')->round(lit(2))->numberFormat(lit(2))) ->drop('revenue_sum') ->write(to_output(truncate: false)) - ->withEntry('created_at', ref('created_at')->toDate('Y/m')) + ->withColumn('created_at', ref('created_at')->toDate('Y/m')) ->write(to_csv(__DIR__ . '/daily_revenue.csv')->saveMode(overwrite())) ->run(); ``` @@ -82,14 +82,14 @@ Alternatively you can use the `drop()` function to drop columns you don't need. ->select('created_at', 'total_price', 'discount') ``` -One of the most powerful features of Flow ETL is the ability to transform data using the `withEntry()` function. +One of the most powerful features of Flow ETL is the ability to transform data using the `withColumn()` function. ```php ignore - ->withEntry('created_at', ref('created_at')->cast('date')->dateFormat('Y/m')) - ->withEntry('revenue', ref('total_price')->minus(ref('discount'))) + ->withColumn('created_at', ref('created_at')->cast('date')->dateFormat('Y/m')) + ->withColumn('revenue', ref('total_price')->minus(ref('discount'))) ``` -`withEntry()` function accepts two arguments, the first one is the name of the new column, the second one is the value of the new column. +`withColumn()` function accepts two arguments, the first one is the name of the new column, the second one is the value of the new column. The value of the new column can be a literal value, a reference to an existing column or a function call. - `ref('created_at')` - creates a reference to the `created_at` column. diff --git a/documentation/upgrading.md b/documentation/upgrading.md index 4d1ae933fe..c44f62c66e 100644 --- a/documentation/upgrading.md +++ b/documentation/upgrading.md @@ -172,6 +172,29 @@ public function scan(FlowContext $context, FileScan $scan): Generator The `arrow` extension must be rebuilt. +### 11) `flow-php/etl`, `flow-php/etl-adapter-postgresql`, `flow-php/etl-adapter-excel`, `flow-php/etl-adapter-seal`, `flow-php/etl-adapter-json`, `flow-php/cli` - "entry" renamed to "column" + +| Before | After | +|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------| +| `DataFrame::withEntry()` / `withEntries()` | `withColumn()` / `withColumns()` (old names deprecated) | +| `with_entry()`, `Flow\ETL\WithEntry` | `with_column()`, `Flow\ETL\WithColumn` | +| `entry()` | removed, use `ref()` or `col()` | +| `Definition::entry()` | `Definition::reference()` | +| `SchemaDefinitionNotFoundException::entry()` | `column()` | +| `RenameEntryStrategy`, `Rename{Case,Map,Replace}EntryStrategy` | `RenameColumnStrategy`, `Rename{Case,Map,Replace}ColumnStrategy` | +| `RenameEntryTransformer`, `RenameEachEntryTransformer` | `RenameColumnTransformer`, `RenameEachColumnTransformer` | +| `{Select,Drop,Prune}EntriesTransformer` | `{Select,Drop,Prune}ColumnsTransformer` | +| `DuplicatedEntriesException` | `DuplicatedColumnsException` | +| `Plan\Node\{WithColumn,WindowColumn,ExpandColumn}::$entry`, `Plan\Node\{Select,Drop,Distinct,DuplicateRow}::$entries` | `$column`, `$columns` | +| `new SequenceExtractor($generator)` wrote a column named `entry` | the column name is required: `new SequenceExtractor($generator, 'name')` | +| `Flow\ETL\Adapter\PostgreSql\EntryTypesMap` | `Flow\ETL\Adapter\PostgreSql\TypesMap` | +| `ExcelLoader::withSheetNameFromEntry()` | `withSheetNameFromColumn()` | +| `SealLoader::withIdentifierEntry()` | `withIdentifierColumn()` | +| `JsonExtractor::withPointer($pointer, pointerToEntryName: true)` | `pointerToColumnName: true` | +| CLI option `--input-json-pointer-entry-name` | `--input-json-pointer-column-name` | +| named arguments `entry:` / `entries:` (`select`, `drop`, `sortBy`, `groupBy`, `duplicateRow`, `ref`, `partition_by`, …), `entry_name:` (`from_sequence_*`), `entryLeft:` / `entryRight:` (`Join\Comparison\{Equal,Identical}`) | `column:` / `columns:`, `column_name:`, `leftReference:` / `rightReference:` | +| exception messages saying `entry` / `entries` for a column (`Schema definition for entry "x" not found`, …) | say `column` / `columns` | + --- ## Upgrading from 0.45.x to 0.46.x diff --git a/src/adapter/etl-adapter-chartjs/tests/Flow/ETL/Adapter/ChartJS/Tests/Integration/ChartJSLoaderTest.php b/src/adapter/etl-adapter-chartjs/tests/Flow/ETL/Adapter/ChartJS/Tests/Integration/ChartJSLoaderTest.php index b5972261e6..ea0b8d85b8 100644 --- a/src/adapter/etl-adapter-chartjs/tests/Flow/ETL/Adapter/ChartJS/Tests/Integration/ChartJSLoaderTest.php +++ b/src/adapter/etl-adapter-chartjs/tests/Flow/ETL/Adapter/ChartJS/Tests/Integration/ChartJSLoaderTest.php @@ -103,7 +103,7 @@ public function test_loading_data_to_bar_chart(): void df() ->read(from_array($data)) - ->withEntry( + ->withColumn( 'Profit', ref('Revenue') ->minus(ref('CM')) @@ -231,7 +231,7 @@ public function test_loading_data_to_bar_chart_output_variable(): void df() ->read(from_array($data)) - ->withEntry( + ->withColumn( 'Profit', ref('Revenue') ->minus(ref('CM')) @@ -354,7 +354,7 @@ public function test_loading_data_to_line_chart(): void df() ->read(from_array($data)) - ->withEntry( + ->withColumn( 'Profit', ref('Revenue') ->minus(ref('CM')) @@ -490,7 +490,7 @@ public function test_loading_data_to_pie_chart(): void df() ->read(from_array($data)) - ->withEntry( + ->withColumn( 'Profit', ref('Revenue') ->minus(ref('CM')) diff --git a/src/adapter/etl-adapter-csv/src/Flow/ETL/Adapter/CSV/PhpCSVEncoder.php b/src/adapter/etl-adapter-csv/src/Flow/ETL/Adapter/CSV/PhpCSVEncoder.php index 96425f0243..b36800c549 100644 --- a/src/adapter/etl-adapter-csv/src/Flow/ETL/Adapter/CSV/PhpCSVEncoder.php +++ b/src/adapter/etl-adapter-csv/src/Flow/ETL/Adapter/CSV/PhpCSVEncoder.php @@ -72,7 +72,7 @@ public function encode(Rows $rows): string $columns = []; foreach ($rows->schema()->definitions() as $definition) { - $cells = $this->cells($definition->type(), $rows->column($definition->entry()->name())); + $cells = $this->cells($definition->type(), $rows->column($definition->reference()->name())); $bare = type_bare($definition->type()); if ( diff --git a/src/adapter/etl-adapter-csv/tests/Flow/ETL/Adapter/CSV/Tests/Integration/CSVExtractorTest.php b/src/adapter/etl-adapter-csv/tests/Flow/ETL/Adapter/CSV/Tests/Integration/CSVExtractorTest.php index 60407a16a1..0b89d704e5 100644 --- a/src/adapter/etl-adapter-csv/tests/Flow/ETL/Adapter/CSV/Tests/Integration/CSVExtractorTest.php +++ b/src/adapter/etl-adapter-csv/tests/Flow/ETL/Adapter/CSV/Tests/Integration/CSVExtractorTest.php @@ -228,7 +228,7 @@ public function test_schema_is_inferred_when_it_was_not_declared(): void static::assertSame('string', $schema->get('Value')->type()->toString()); foreach ($schema->definitions() as $definition) { - static::assertTrue($definition->isNullable(), $definition->entry()->name() . ' must be nullable'); + static::assertTrue($definition->isNullable(), $definition->reference()->name() . ' must be nullable'); } } @@ -1108,7 +1108,7 @@ public function test_loading_data_from_all_partitions(): void ], df() ->read(from_csv(__DIR__ . '/../Fixtures/partitioned/group=*/*.csv')) - ->withEntry('id', ref('id')->cast('int')) + ->withColumn('id', ref('id')->cast('int')) ->sortBy([ref('id')]) ->fetch() ->toArray(), diff --git a/src/adapter/etl-adapter-csv/tests/Flow/ETL/Adapter/CSV/Tests/Integration/CSVTest.php b/src/adapter/etl-adapter-csv/tests/Flow/ETL/Adapter/CSV/Tests/Integration/CSVTest.php index 1959f6b922..ff3e3ed3e7 100644 --- a/src/adapter/etl-adapter-csv/tests/Flow/ETL/Adapter/CSV/Tests/Integration/CSVTest.php +++ b/src/adapter/etl-adapter-csv/tests/Flow/ETL/Adapter/CSV/Tests/Integration/CSVTest.php @@ -101,7 +101,7 @@ public function test_loading_csv_files(): void df() ->read(new FakeExtractor(100)) ->drop('array', 'list', 'map', 'struct', 'object', 'enum', 'list_of_datetimes') - ->withEntry('datetime', ref('datetime')->dateFormat('Y-m-d H:i:s')) + ->withColumn('datetime', ref('datetime')->dateFormat('Y-m-d H:i:s')) ->load(to_csv($path = __DIR__ . '/var/test_loading_csv_files.csv')->saveMode(overwrite())) ->run(); @@ -132,7 +132,7 @@ public function test_a_transformation_sink_writes_all_batches_to_csv(): void { df() ->read(from_sequence_number('id', 1, 12)) - ->withEntry('name', lit('dropped by the transformation')) + ->withColumn('name', lit('dropped by the transformation')) ->batchSize(4) ->write(to_transformation( select('id'), diff --git a/src/adapter/etl-adapter-csv/tests/Flow/ETL/Adapter/CSV/Tests/Unit/PhpCSVEncoderTest.php b/src/adapter/etl-adapter-csv/tests/Flow/ETL/Adapter/CSV/Tests/Unit/PhpCSVEncoderTest.php index fd667b62b4..b5755da244 100644 --- a/src/adapter/etl-adapter-csv/tests/Flow/ETL/Adapter/CSV/Tests/Unit/PhpCSVEncoderTest.php +++ b/src/adapter/etl-adapter-csv/tests/Flow/ETL/Adapter/CSV/Tests/Unit/PhpCSVEncoderTest.php @@ -260,7 +260,7 @@ public function test_cells_are_the_fields_before_quoting(): void $cells = []; foreach ($rows->schema()->definitions() as $definition) { - $cells[] = $encoder->cells($definition->type(), $rows->column($definition->entry()->name())); + $cells[] = $encoder->cells($definition->type(), $rows->column($definition->reference()->name())); } static::assertSame( diff --git a/src/adapter/etl-adapter-doctrine/src/Flow/ETL/Adapter/Doctrine/DbalEncoder.php b/src/adapter/etl-adapter-doctrine/src/Flow/ETL/Adapter/Doctrine/DbalEncoder.php index b1d0d040ba..6eb0744357 100644 --- a/src/adapter/etl-adapter-doctrine/src/Flow/ETL/Adapter/Doctrine/DbalEncoder.php +++ b/src/adapter/etl-adapter-doctrine/src/Flow/ETL/Adapter/Doctrine/DbalEncoder.php @@ -23,7 +23,7 @@ public function encode(Rows $rows): array $columns = []; foreach ($rows->schema()->definitions() as $definition) { - $name = $definition->entry()->name(); + $name = $definition->reference()->name(); $columns[$name] = $this->column($definition->type(), $rows->column($name)); } diff --git a/src/adapter/etl-adapter-doctrine/src/Flow/ETL/Adapter/Doctrine/SchemaConverter.php b/src/adapter/etl-adapter-doctrine/src/Flow/ETL/Adapter/Doctrine/SchemaConverter.php index 590afff256..29cc8baa50 100644 --- a/src/adapter/etl-adapter-doctrine/src/Flow/ETL/Adapter/Doctrine/SchemaConverter.php +++ b/src/adapter/etl-adapter-doctrine/src/Flow/ETL/Adapter/Doctrine/SchemaConverter.php @@ -51,7 +51,7 @@ public function toDbalTable(Schema $schema, string $tableName, array $tableOptio foreach ($schema->definitions() as $definition) { $column = $this->flowToColumn( - $definition->entry()->name(), + $definition->reference()->name(), $definition->type(), $definition->isNullable(), $definition->metadata(), @@ -263,7 +263,7 @@ private function withIndexes(Schema $schema, Table $table): Table $indexesData[$index] = []; } - $indexesData[$index][] = $definition->entry()->name(); + $indexesData[$index][] = $definition->reference()->name(); } if ($definition->metadata()->has(DbalMetadata::INDEX_UNIQUE->value)) { @@ -276,7 +276,7 @@ private function withIndexes(Schema $schema, Table $table): Table $uniqueIndexesData[$uniqueIndex] = []; } - $uniqueIndexesData[$uniqueIndex][] = $definition->entry()->name(); + $uniqueIndexesData[$uniqueIndex][] = $definition->reference()->name(); } if ($definition->metadata()->has(DbalMetadata::PRIMARY_KEY->value)) { @@ -284,7 +284,7 @@ private function withIndexes(Schema $schema, Table $table): Table DbalMetadata::PRIMARY_KEY->value, type_string(), ); - $primaryKey[$primaryKeyName][] = $definition->entry()->name(); + $primaryKey[$primaryKeyName][] = $definition->reference()->name(); if (count($primaryKey) > 1) { throw new InvalidArgumentException( diff --git a/src/adapter/etl-adapter-doctrine/src/Flow/ETL/Adapter/Doctrine/TypesMap.php b/src/adapter/etl-adapter-doctrine/src/Flow/ETL/Adapter/Doctrine/TypesMap.php index 440e649afe..40141f3de9 100644 --- a/src/adapter/etl-adapter-doctrine/src/Flow/ETL/Adapter/Doctrine/TypesMap.php +++ b/src/adapter/etl-adapter-doctrine/src/Flow/ETL/Adapter/Doctrine/TypesMap.php @@ -151,7 +151,7 @@ public function flowSchemaTypes(Schema $schema): array throw new BaseInvalidArgumentException(sprintf('DBAL type "%s" is not registered.', $dbalTypeClass)); } - $types[$definition->entry()->name()] = DbalType::getType($typeClassToName[$dbalTypeClass]); + $types[$definition->reference()->name()] = DbalType::getType($typeClassToName[$dbalTypeClass]); } return $types; diff --git a/src/adapter/etl-adapter-excel/src/Flow/ETL/Adapter/Excel/ExcelEncoder.php b/src/adapter/etl-adapter-excel/src/Flow/ETL/Adapter/Excel/ExcelEncoder.php index db5c847893..641eb94efc 100644 --- a/src/adapter/etl-adapter-excel/src/Flow/ETL/Adapter/Excel/ExcelEncoder.php +++ b/src/adapter/etl-adapter-excel/src/Flow/ETL/Adapter/Excel/ExcelEncoder.php @@ -110,7 +110,7 @@ public function encode(Rows $rows): array $columns = []; foreach ($rows->schema()->definitions() as $definition) { - $columns[] = $this->column($definition->type(), $rows->column($definition->entry()->name())); + $columns[] = $this->column($definition->type(), $rows->column($definition->reference()->name())); } $encoded = []; diff --git a/src/adapter/etl-adapter-excel/src/Flow/ETL/Adapter/Excel/ExcelLoader.php b/src/adapter/etl-adapter-excel/src/Flow/ETL/Adapter/Excel/ExcelLoader.php index 76d9f3bc97..5fb38f0ead 100644 --- a/src/adapter/etl-adapter-excel/src/Flow/ETL/Adapter/Excel/ExcelLoader.php +++ b/src/adapter/etl-adapter-excel/src/Flow/ETL/Adapter/Excel/ExcelLoader.php @@ -69,7 +69,7 @@ final class ExcelLoader implements Closure, Discardable, FileLoader, Loader, Par private ?string $sheetName = null; - private ?string $sheetNameEntryName = null; + private ?string $sheetNameColumn = null; private string $timeFormat = '%H:%I:%S'; @@ -159,9 +159,8 @@ public function load(Rows $rows, FlowContext $context): void $manager->open($stream->path()->path()); $sheetColumn = - $this->sheetNameEntryName !== null - && $group->schema()->findDefinition($this->sheetNameEntryName) !== null - ? $this->sheetNameEntryName + $this->sheetNameColumn !== null && $group->schema()->findDefinition($this->sheetNameColumn) !== null + ? $this->sheetNameColumn : null; $written = $sheetColumn === null ? $group @@ -249,9 +248,9 @@ public function withHeaderStyle(Style $style): self public function withSheetName(?string $sheetName): self { - if ($sheetName !== null && $this->sheetNameEntryName !== null) { + if ($sheetName !== null && $this->sheetNameColumn !== null) { throw new InvalidArgumentException( - 'Cannot set both sheetName and sheetNameFromEntry. These options are mutually exclusive.', + 'Cannot set both sheetName and sheetNameFromColumn. These options are mutually exclusive.', ); } @@ -264,15 +263,15 @@ public function withSheetName(?string $sheetName): self return $this; } - public function withSheetNameFromEntry(string $entryName): self + public function withSheetNameFromColumn(string $columnName): self { if ($this->sheetName !== null) { throw new InvalidArgumentException( - 'Cannot set both sheetName and sheetNameFromEntry. These options are mutually exclusive.', + 'Cannot set both sheetName and sheetNameFromColumn. These options are mutually exclusive.', ); } - $this->sheetNameEntryName = $entryName; + $this->sheetNameColumn = $columnName; return $this; } diff --git a/src/adapter/etl-adapter-excel/tests/Flow/ETL/Adapter/Excel/Tests/Integration/ExcelExtractorTest.php b/src/adapter/etl-adapter-excel/tests/Flow/ETL/Adapter/Excel/Tests/Integration/ExcelExtractorTest.php index 9f539dfd84..fb2e222c26 100644 --- a/src/adapter/etl-adapter-excel/tests/Flow/ETL/Adapter/Excel/Tests/Integration/ExcelExtractorTest.php +++ b/src/adapter/etl-adapter-excel/tests/Flow/ETL/Adapter/Excel/Tests/Integration/ExcelExtractorTest.php @@ -318,7 +318,7 @@ public function test_is_valid_excel_sheet_name_function(): void ['sheet' => 'This is a very long sheet name that exceeds the 31 character limit'], ['sheet' => 'Normal'], ], schema(string_schema('sheet'))))) - ->withEntry('is_valid', is_valid_excel_sheet_name(ref('sheet'))) + ->withColumn('is_valid', is_valid_excel_sheet_name(ref('sheet'))) ->fetch() ->toArray(); diff --git a/src/adapter/etl-adapter-excel/tests/Flow/ETL/Adapter/Excel/Tests/Integration/ExcelLoaderTest.php b/src/adapter/etl-adapter-excel/tests/Flow/ETL/Adapter/Excel/Tests/Integration/ExcelLoaderTest.php index 1d6b2e0976..0a8e1ae5f2 100644 --- a/src/adapter/etl-adapter-excel/tests/Flow/ETL/Adapter/Excel/Tests/Integration/ExcelLoaderTest.php +++ b/src/adapter/etl-adapter-excel/tests/Flow/ETL/Adapter/Excel/Tests/Integration/ExcelLoaderTest.php @@ -301,7 +301,7 @@ public function test_round_trip_with_dynamic_sheet_names(): void $outputPath = __DIR__ . '/var/output_dynamic_sheets.xlsx'; $loader = to_excel($outputPath); - $loader = $loader->withSheetNameFromEntry('category'); + $loader = $loader->withSheetNameFromColumn('category'); df() ->read(from_rows(array_to_rows( @@ -434,17 +434,17 @@ public function test_round_trip_without_header(ExcelWriter $writer, string $exte public function test_sheet_name_and_sheet_name_from_entry_are_mutually_exclusive(): void { $this->expectException(InvalidArgumentException::class); - $this->expectExceptionMessage('Cannot set both sheetName and sheetNameFromEntry'); + $this->expectExceptionMessage('Cannot set both sheetName and sheetNameFromColumn'); - to_excel('/tmp/test.xlsx')->withSheetName('MySheet')->withSheetNameFromEntry('category'); + to_excel('/tmp/test.xlsx')->withSheetName('MySheet')->withSheetNameFromColumn('category'); } public function test_sheet_name_from_entry_and_sheet_name_are_mutually_exclusive(): void { $this->expectException(InvalidArgumentException::class); - $this->expectExceptionMessage('Cannot set both sheetName and sheetNameFromEntry'); + $this->expectExceptionMessage('Cannot set both sheetName and sheetNameFromColumn'); - to_excel('/tmp/test.xlsx')->withSheetNameFromEntry('category')->withSheetName('MySheet'); + to_excel('/tmp/test.xlsx')->withSheetNameFromColumn('category')->withSheetName('MySheet'); } public function test_transformation_loader_writes_all_batches_to_excel(): void @@ -453,7 +453,7 @@ public function test_transformation_loader_writes_all_batches_to_excel(): void df() ->read(from_sequence_number('id', 1, 12)) - ->withEntry('name', lit('dropped by the transformation')) + ->withColumn('name', lit('dropped by the transformation')) ->batchSize(4) ->write(to_transformation(select('id'), to_excel($outputPath)->saveMode(overwrite()))) ->run(); @@ -524,7 +524,7 @@ public function test_cell_styler_receives_the_row_index_within_the_batch(): void ->batchSize(2) ->write( to_excel(__DIR__ . '/var/output_row_number.xlsx') - ->withSheetNameFromEntry('sheet') + ->withSheetNameFromColumn('sheet') ->withCellStyler($styler) ->saveMode(overwrite()), ) diff --git a/src/adapter/etl-adapter-json/src/Flow/ETL/Adapter/JSON/JSONMachine/JsonExtractor.php b/src/adapter/etl-adapter-json/src/Flow/ETL/Adapter/JSON/JSONMachine/JsonExtractor.php index 1e0ac67949..55f9e2d8df 100644 --- a/src/adapter/etl-adapter-json/src/Flow/ETL/Adapter/JSON/JSONMachine/JsonExtractor.php +++ b/src/adapter/etl-adapter-json/src/Flow/ETL/Adapter/JSON/JSONMachine/JsonExtractor.php @@ -53,7 +53,7 @@ final class JsonExtractor implements private ?string $pointer = null; - private bool $pointerToEntryName = false; + private bool $pointerToColumnName = false; /** * What the last schema inference sampled; null until one ran. @@ -110,7 +110,7 @@ public function scan(FlowContext $context, FileScan $scan): Generator $this->filesystem, $this->format, $this->pointer, - $this->pointerToEntryName, + $this->pointerToColumnName, $sources, ), $this->format, @@ -163,7 +163,7 @@ private function describe(): Schema $this->filesystem, $this->format, $this->pointer, - $this->pointerToEntryName, + $this->pointerToColumnName, iterator_to_array($this->sourceFiles($this->filesystem, $this->path), false), ); @@ -217,15 +217,15 @@ public function statistics(): Statistics /** * @param string $pointer - * @param bool $pointerToEntryName - when true pointer will be used as entry name for extracted data + * @param bool $pointerToColumnName - when true pointer will be used as column name for extracted data */ - public function withPointer(string $pointer, bool $pointerToEntryName = false): self + public function withPointer(string $pointer, bool $pointerToColumnName = false): self { $this->derivedSchema = null; $this->sampled = null; $this->statistics = null; $this->pointer = $pointer; - $this->pointerToEntryName = $pointerToEntryName; + $this->pointerToColumnName = $pointerToColumnName; return $this; } diff --git a/src/adapter/etl-adapter-json/src/Flow/ETL/Adapter/JSON/JSONMachine/JsonFileReader.php b/src/adapter/etl-adapter-json/src/Flow/ETL/Adapter/JSON/JSONMachine/JsonFileReader.php index 26e5b0fc3d..7ca1888566 100644 --- a/src/adapter/etl-adapter-json/src/Flow/ETL/Adapter/JSON/JSONMachine/JsonFileReader.php +++ b/src/adapter/etl-adapter-json/src/Flow/ETL/Adapter/JSON/JSONMachine/JsonFileReader.php @@ -46,7 +46,7 @@ public function __construct( private Filesystem $filesystem, private JsonFormat $format, private ?string $pointer, - private bool $pointerToEntryName, + private bool $pointerToColumnName, private array $sources, ) { $this->options = $pointer === null @@ -173,7 +173,7 @@ public function sample(SourceFile $source, JsonReadBytes $read = new JsonReadByt // @mago-ignore analysis:mixed-assignment foreach ($items as $row) { - if ($this->pointer !== null && $this->pointerToEntryName) { + if ($this->pointer !== null && $this->pointerToColumnName) { $row = [$this->pointer => $row]; } diff --git a/src/adapter/etl-adapter-json/src/Flow/ETL/Adapter/JSON/PhpJsonEncoder.php b/src/adapter/etl-adapter-json/src/Flow/ETL/Adapter/JSON/PhpJsonEncoder.php index 5434a71482..ac3a7248d1 100644 --- a/src/adapter/etl-adapter-json/src/Flow/ETL/Adapter/JSON/PhpJsonEncoder.php +++ b/src/adapter/etl-adapter-json/src/Flow/ETL/Adapter/JSON/PhpJsonEncoder.php @@ -47,8 +47,11 @@ public function encode(Rows $rows, string $separator): string $columns = []; foreach ($rows->schema()->definitions() as $definition) { - $names[] = $definition->entry()->name(); - $columns[] = $this->text->of($definition->type(), $rows->column($definition->entry()->name())->physicals()); + $names[] = $definition->reference()->name(); + $columns[] = $this->text->of( + $definition->type(), + $rows->column($definition->reference()->name())->physicals(), + ); } if ($columns === []) { diff --git a/src/adapter/etl-adapter-json/src/Flow/ETL/Adapter/JSON/SchemaConverter.php b/src/adapter/etl-adapter-json/src/Flow/ETL/Adapter/JSON/SchemaConverter.php index 3b5f65a9b2..1e1ca93d5d 100644 --- a/src/adapter/etl-adapter-json/src/Flow/ETL/Adapter/JSON/SchemaConverter.php +++ b/src/adapter/etl-adapter-json/src/Flow/ETL/Adapter/JSON/SchemaConverter.php @@ -213,7 +213,7 @@ public function toJsonSchema(Schema $schema): array $required = []; foreach ($schema->definitions() as $definition) { - $name = $definition->entry()->name(); + $name = $definition->reference()->name(); $properties[$name] = $this->definitionToJsonSchema($definition); if (!$definition->isNullable()) { diff --git a/src/adapter/etl-adapter-json/tests/Flow/ETL/Adapter/JSON/Tests/Context/JsonFixtureContext.php b/src/adapter/etl-adapter-json/tests/Flow/ETL/Adapter/JSON/Tests/Context/JsonFixtureContext.php index dc16456826..bd8b222ba1 100644 --- a/src/adapter/etl-adapter-json/tests/Flow/ETL/Adapter/JSON/Tests/Context/JsonFixtureContext.php +++ b/src/adapter/etl-adapter-json/tests/Flow/ETL/Adapter/JSON/Tests/Context/JsonFixtureContext.php @@ -53,7 +53,7 @@ public static function globReader( JsonFormat $format = JsonFormat::Document, Filesystem $filesystem = new NativeLocalFilesystem(), ?string $pointer = null, - bool $pointerToEntryName = false, + bool $pointerToColumnName = false, ): JsonFileReader { $sources = []; @@ -61,7 +61,7 @@ public static function globReader( $sources[] = new SourceFile($status->path); } - return new JsonFileReader($filesystem, $format, $pointer, $pointerToEntryName, $sources); + return new JsonFileReader($filesystem, $format, $pointer, $pointerToColumnName, $sources); } /** @@ -197,9 +197,9 @@ public static function reader( Filesystem $filesystem = new NativeLocalFilesystem(), array $sources = [], ?string $pointer = null, - bool $pointerToEntryName = false, + bool $pointerToColumnName = false, ): JsonFileReader { - return new JsonFileReader($filesystem, $format, $pointer, $pointerToEntryName, $sources); + return new JsonFileReader($filesystem, $format, $pointer, $pointerToColumnName, $sources); } public static function source(string $fixture): SourceFile diff --git a/src/adapter/etl-adapter-json/tests/Flow/ETL/Adapter/JSON/Tests/Integration/JSONMachine/JsonFileReaderTest.php b/src/adapter/etl-adapter-json/tests/Flow/ETL/Adapter/JSON/Tests/Integration/JSONMachine/JsonFileReaderTest.php index 1dc992e448..d0952e02db 100644 --- a/src/adapter/etl-adapter-json/tests/Flow/ETL/Adapter/JSON/Tests/Integration/JSONMachine/JsonFileReaderTest.php +++ b/src/adapter/etl-adapter-json/tests/Flow/ETL/Adapter/JSON/Tests/Integration/JSONMachine/JsonFileReaderTest.php @@ -197,7 +197,7 @@ public function test_the_pointer_can_name_the_column( string $pointer, int $expectedRows, ): void { - $reader = JsonFixtureContext::reader($format, pointer: $pointer, pointerToEntryName: true); + $reader = JsonFixtureContext::reader($format, pointer: $pointer, pointerToColumnName: true); $rows = iterator_to_array($reader->sample(JsonFixtureContext::source($fixture)), false); diff --git a/src/adapter/etl-adapter-json/tests/Flow/ETL/Adapter/JSON/Tests/Integration/JsonLinesTest.php b/src/adapter/etl-adapter-json/tests/Flow/ETL/Adapter/JSON/Tests/Integration/JsonLinesTest.php index 6a583e1fde..51c8b126de 100644 --- a/src/adapter/etl-adapter-json/tests/Flow/ETL/Adapter/JSON/Tests/Integration/JsonLinesTest.php +++ b/src/adapter/etl-adapter-json/tests/Flow/ETL/Adapter/JSON/Tests/Integration/JsonLinesTest.php @@ -156,7 +156,7 @@ public function test_transformation_loader_writes_all_batches_to_json_lines(): v { df() ->read(from_sequence_number('id', 1, 12)) - ->withEntry('name', lit('dropped by the transformation')) + ->withColumn('name', lit('dropped by the transformation')) ->batchSize(4) ->write(to_transformation( select('id'), diff --git a/src/adapter/etl-adapter-json/tests/Flow/ETL/Adapter/JSON/Tests/Integration/JsonTest.php b/src/adapter/etl-adapter-json/tests/Flow/ETL/Adapter/JSON/Tests/Integration/JsonTest.php index 1c736f6dfe..4fda145a35 100644 --- a/src/adapter/etl-adapter-json/tests/Flow/ETL/Adapter/JSON/Tests/Integration/JsonTest.php +++ b/src/adapter/etl-adapter-json/tests/Flow/ETL/Adapter/JSON/Tests/Integration/JsonTest.php @@ -287,7 +287,7 @@ public function test_transformation_loader_writes_parseable_json_across_batches( { df() ->read(from_sequence_number('id', 1, 12)) - ->withEntry('name', lit('dropped by the transformation')) + ->withColumn('name', lit('dropped by the transformation')) ->batchSize(4) ->write(to_transformation( select('id'), diff --git a/src/adapter/etl-adapter-json/tests/Flow/ETL/Adapter/JSON/Tests/Unit/PhpJsonEncoderTest.php b/src/adapter/etl-adapter-json/tests/Flow/ETL/Adapter/JSON/Tests/Unit/PhpJsonEncoderTest.php index 92673a51e2..0d6c6310f6 100644 --- a/src/adapter/etl-adapter-json/tests/Flow/ETL/Adapter/JSON/Tests/Unit/PhpJsonEncoderTest.php +++ b/src/adapter/etl-adapter-json/tests/Flow/ETL/Adapter/JSON/Tests/Unit/PhpJsonEncoderTest.php @@ -335,7 +335,7 @@ public function test_fragments_are_the_json_text_of_every_cell(): void $fragments = []; foreach ($rows->schema()->definitions() as $definition) { - $fragments[] = $encoder->fragments($definition->type(), $rows->column($definition->entry()->name())); + $fragments[] = $encoder->fragments($definition->type(), $rows->column($definition->reference()->name())); } static::assertSame([['{"a":{}}', 'null'], ['{}', '{"1":2.0}'], ['"a/b"', 'null']], $fragments); diff --git a/src/adapter/etl-adapter-parquet/src/Flow/ETL/Adapter/Parquet/ParquetEncoder.php b/src/adapter/etl-adapter-parquet/src/Flow/ETL/Adapter/Parquet/ParquetEncoder.php index 501f533069..d200e3bfc5 100644 --- a/src/adapter/etl-adapter-parquet/src/Flow/ETL/Adapter/Parquet/ParquetEncoder.php +++ b/src/adapter/etl-adapter-parquet/src/Flow/ETL/Adapter/Parquet/ParquetEncoder.php @@ -41,7 +41,7 @@ public function columns(Rows $rows): array $columns = []; foreach ($rows->schema()->definitions() as $definition) { - $name = $definition->entry()->name(); + $name = $definition->reference()->name(); $values = $rows->column($name)->values(); if (array_key_exists($name, $this->encodePlan)) { diff --git a/src/adapter/etl-adapter-parquet/src/Flow/ETL/Adapter/Parquet/ParquetSchemaConformance.php b/src/adapter/etl-adapter-parquet/src/Flow/ETL/Adapter/Parquet/ParquetSchemaConformance.php index cc494baacf..7ee23f6d2b 100644 --- a/src/adapter/etl-adapter-parquet/src/Flow/ETL/Adapter/Parquet/ParquetSchemaConformance.php +++ b/src/adapter/etl-adapter-parquet/src/Flow/ETL/Adapter/Parquet/ParquetSchemaConformance.php @@ -24,7 +24,7 @@ public function __construct(ParquetSchema $schema) foreach ((new SchemaConverter()) ->toFlow($schema) ->definitions() as $definition) { - $definitions[$definition->entry()->name()] = $definition; + $definitions[$definition->reference()->name()] = $definition; } $this->definitions = $definitions; @@ -37,7 +37,7 @@ public function conform(Rows $rows, Backend $backend): Rows $cast = false; foreach ($rows->schema()->definitions() as $key => $own) { - $writer = $this->definitions[$own->entry()->name()] ?? null; + $writer = $this->definitions[$own->reference()->name()] ?? null; if ( $writer === null diff --git a/src/adapter/etl-adapter-parquet/src/Flow/ETL/Adapter/Parquet/PhpParquetOpenSource.php b/src/adapter/etl-adapter-parquet/src/Flow/ETL/Adapter/Parquet/PhpParquetOpenSource.php index dcda6eb973..494e64be60 100644 --- a/src/adapter/etl-adapter-parquet/src/Flow/ETL/Adapter/Parquet/PhpParquetOpenSource.php +++ b/src/adapter/etl-adapter-parquet/src/Flow/ETL/Adapter/Parquet/PhpParquetOpenSource.php @@ -28,7 +28,7 @@ public function __construct( public function batches(Schema $schema, int $batchSize, ReadPlan $plan, Backend $backend): Generator { $names = array_values(array_map(static fn(Definition $definition): string => $definition - ->entry() + ->reference() ->name(), $schema->definitions())); foreach ($this->file->reader()->readColumns($names, $batchSize, $plan) as $chunk) { diff --git a/src/adapter/etl-adapter-parquet/src/Flow/ETL/Adapter/Parquet/Pushdown/FilterTranslator.php b/src/adapter/etl-adapter-parquet/src/Flow/ETL/Adapter/Parquet/Pushdown/FilterTranslator.php index d498cb6140..fa4de33a5d 100644 --- a/src/adapter/etl-adapter-parquet/src/Flow/ETL/Adapter/Parquet/Pushdown/FilterTranslator.php +++ b/src/adapter/etl-adapter-parquet/src/Flow/ETL/Adapter/Parquet/Pushdown/FilterTranslator.php @@ -208,14 +208,16 @@ private function comparison( $strict, ); - return $value === null ? null : new Comparison(parquet_column($definition->entry()->name()), $operator, $value); + return $value === null + ? null + : new Comparison(parquet_column($definition->reference()->name()), $operator, $value); } private function isNull(FunctionTree $reference, Schema $body): ?Filter { $definition = $this->definition($reference, $body); - return $definition === null ? null : parquet_column($definition->entry()->name())->isNull(); + return $definition === null ? null : parquet_column($definition->reference()->name())->isNull(); } private function in(FunctionTree $haystack, FunctionTree $needle, Schema $body): ?Filter @@ -239,7 +241,7 @@ private function in(FunctionTree $haystack, FunctionTree $needle, Schema $body): false, ), $present); - return in_array(null, $values, true) ? null : parquet_column($definition->entry()->name())->in($values); + return in_array(null, $values, true) ? null : parquet_column($definition->reference()->name())->in($values); } private function startsWith(FunctionTree $haystack, FunctionTree $needle, Schema $body): ?Filter @@ -249,7 +251,7 @@ private function startsWith(FunctionTree $haystack, FunctionTree $needle, Schema $prefix = $needle instanceof Literal ? $needle->value() : null; return $definition !== null && type_bare($definition->type()) instanceof StringType && is_string($prefix) - ? parquet_column($definition->entry()->name())->startsWith($prefix) + ? parquet_column($definition->reference()->name())->startsWith($prefix) : null; } diff --git a/src/adapter/etl-adapter-parquet/src/Flow/ETL/Adapter/Parquet/SchemaConverter.php b/src/adapter/etl-adapter-parquet/src/Flow/ETL/Adapter/Parquet/SchemaConverter.php index 92e4b4903c..c4a0f929e0 100644 --- a/src/adapter/etl-adapter-parquet/src/Flow/ETL/Adapter/Parquet/SchemaConverter.php +++ b/src/adapter/etl-adapter-parquet/src/Flow/ETL/Adapter/Parquet/SchemaConverter.php @@ -87,7 +87,7 @@ public function toParquet(Schema $schema): ParquetSchema foreach ($schema->definitions() as $definition) { $columns[] = $this->flowToParquet( - $definition->entry()->name(), + $definition->reference()->name(), $definition->type(), $definition->isNullable(), ); diff --git a/src/adapter/etl-adapter-parquet/tests/Flow/ETL/Adapter/Parquet/Tests/Integration/ParquetExtractorTest.php b/src/adapter/etl-adapter-parquet/tests/Flow/ETL/Adapter/Parquet/Tests/Integration/ParquetExtractorTest.php index bdc5a39189..c335615f13 100644 --- a/src/adapter/etl-adapter-parquet/tests/Flow/ETL/Adapter/Parquet/Tests/Integration/ParquetExtractorTest.php +++ b/src/adapter/etl-adapter-parquet/tests/Flow/ETL/Adapter/Parquet/Tests/Integration/ParquetExtractorTest.php @@ -763,7 +763,7 @@ public function test_partition_schema_types_a_partition_column_the_file_holds_li mixed $value, ): void { $memory = memory_filesystem(); - $name = $definition->entry()->name(); + $name = $definition->reference()->name(); df() ->read(from_array([['id' => 'a', $name => $value]], schema(str_schema('id'), $definition))) diff --git a/src/adapter/etl-adapter-parquet/tests/Flow/ETL/Adapter/Parquet/Tests/Integration/ParquetTest.php b/src/adapter/etl-adapter-parquet/tests/Flow/ETL/Adapter/Parquet/Tests/Integration/ParquetTest.php index 46348ffe83..df22a43a0d 100644 --- a/src/adapter/etl-adapter-parquet/tests/Flow/ETL/Adapter/Parquet/Tests/Integration/ParquetTest.php +++ b/src/adapter/etl-adapter-parquet/tests/Flow/ETL/Adapter/Parquet/Tests/Integration/ParquetTest.php @@ -537,7 +537,7 @@ public function test_transformation_loader_writes_all_batches_to_parquet(): void { data_frame() ->read(from_sequence_number('id', 1, 12)) - ->withEntry('name', lit('dropped by the transformation')) + ->withColumn('name', lit('dropped by the transformation')) ->batchSize(4) ->write(to_transformation( select('id'), @@ -847,7 +847,7 @@ public function test_xml_nodes_written_before_utf8_node_documents_read_back_and_ ], data_frame() ->read(from_parquet($loaded, filesystem: $memory)) - ->withEntry('node', ref('node')->cast(type_string())) + ->withColumn('node', ref('node')->cast(type_string())) ->fetch() ->toArray(), ); diff --git a/src/adapter/etl-adapter-postgresql/src/Flow/ETL/Adapter/PostgreSql/PostgreSqlEncoder.php b/src/adapter/etl-adapter-postgresql/src/Flow/ETL/Adapter/PostgreSql/PostgreSqlEncoder.php index ea4abb3d51..1afb4c9cb5 100644 --- a/src/adapter/etl-adapter-postgresql/src/Flow/ETL/Adapter/PostgreSql/PostgreSqlEncoder.php +++ b/src/adapter/etl-adapter-postgresql/src/Flow/ETL/Adapter/PostgreSql/PostgreSqlEncoder.php @@ -35,7 +35,7 @@ public function columns(Rows $rows): array $columns = []; foreach ($rows->schema()->definitions() as $definition) { - $name = $definition->entry()->name(); + $name = $definition->reference()->name(); $columns[$name] = $this->column($definition->type(), $rows->column($name)); } diff --git a/src/adapter/etl-adapter-postgresql/src/Flow/ETL/Adapter/PostgreSql/PostgreSqlLoader.php b/src/adapter/etl-adapter-postgresql/src/Flow/ETL/Adapter/PostgreSql/PostgreSqlLoader.php index 1ea413e573..c51ff7dfce 100644 --- a/src/adapter/etl-adapter-postgresql/src/Flow/ETL/Adapter/PostgreSql/PostgreSqlLoader.php +++ b/src/adapter/etl-adapter-postgresql/src/Flow/ETL/Adapter/PostgreSql/PostgreSqlLoader.php @@ -44,7 +44,7 @@ final class PostgreSqlLoader implements Loader public function __construct( private readonly Client $client, private readonly string $table, - private EntryTypesMap $typesMap = new EntryTypesMap(), + private TypesMap $typesMap = new TypesMap(), ) { $this->client->converters()->register(new EnumConverter()); $this->client->converters()->register(new XMLConverter()); @@ -94,7 +94,7 @@ public function withOperation(Operation $operation): self return $this; } - public function withTypesMap(EntryTypesMap $typesMap): self + public function withTypesMap(TypesMap $typesMap): self { $this->typesMap = $typesMap; diff --git a/src/adapter/etl-adapter-postgresql/src/Flow/ETL/Adapter/PostgreSql/QueryBuilder/DeleteQueryBuilder.php b/src/adapter/etl-adapter-postgresql/src/Flow/ETL/Adapter/PostgreSql/QueryBuilder/DeleteQueryBuilder.php index 7f061ec346..d3ebaa0ff4 100644 --- a/src/adapter/etl-adapter-postgresql/src/Flow/ETL/Adapter/PostgreSql/QueryBuilder/DeleteQueryBuilder.php +++ b/src/adapter/etl-adapter-postgresql/src/Flow/ETL/Adapter/PostgreSql/QueryBuilder/DeleteQueryBuilder.php @@ -4,9 +4,9 @@ namespace Flow\ETL\Adapter\PostgreSql\QueryBuilder; -use Flow\ETL\Adapter\PostgreSql\EntryTypesMap; use Flow\ETL\Adapter\PostgreSql\Exception\RuntimeException; use Flow\ETL\Adapter\PostgreSql\LoaderOptions\DeleteOptions; +use Flow\ETL\Adapter\PostgreSql\TypesMap; use Flow\ETL\Schema; use Flow\PostgreSql\Client\TypedValue; use Flow\PostgreSql\QueryBuilder\Sql; @@ -24,7 +24,7 @@ { public function __construct( private string $table, - private EntryTypesMap $typesMap, + private TypesMap $typesMap, ) {} /** diff --git a/src/adapter/etl-adapter-postgresql/src/Flow/ETL/Adapter/PostgreSql/QueryBuilder/InsertQueryBuilder.php b/src/adapter/etl-adapter-postgresql/src/Flow/ETL/Adapter/PostgreSql/QueryBuilder/InsertQueryBuilder.php index 51a634be94..fc3948c524 100644 --- a/src/adapter/etl-adapter-postgresql/src/Flow/ETL/Adapter/PostgreSql/QueryBuilder/InsertQueryBuilder.php +++ b/src/adapter/etl-adapter-postgresql/src/Flow/ETL/Adapter/PostgreSql/QueryBuilder/InsertQueryBuilder.php @@ -4,8 +4,8 @@ namespace Flow\ETL\Adapter\PostgreSql\QueryBuilder; -use Flow\ETL\Adapter\PostgreSql\EntryTypesMap; use Flow\ETL\Adapter\PostgreSql\LoaderOptions\InsertOptions; +use Flow\ETL\Adapter\PostgreSql\TypesMap; use Flow\ETL\Exception\InvalidArgumentException; use Flow\ETL\Schema; use Flow\PostgreSql\Client\ConvertedParameters; @@ -26,7 +26,7 @@ { public function __construct( private string $table, - private EntryTypesMap $typesMap, + private TypesMap $typesMap, ) {} /** diff --git a/src/adapter/etl-adapter-postgresql/src/Flow/ETL/Adapter/PostgreSql/QueryBuilder/UpdateQueryBuilder.php b/src/adapter/etl-adapter-postgresql/src/Flow/ETL/Adapter/PostgreSql/QueryBuilder/UpdateQueryBuilder.php index b33488c9ff..d6a163a1f1 100644 --- a/src/adapter/etl-adapter-postgresql/src/Flow/ETL/Adapter/PostgreSql/QueryBuilder/UpdateQueryBuilder.php +++ b/src/adapter/etl-adapter-postgresql/src/Flow/ETL/Adapter/PostgreSql/QueryBuilder/UpdateQueryBuilder.php @@ -4,9 +4,9 @@ namespace Flow\ETL\Adapter\PostgreSql\QueryBuilder; -use Flow\ETL\Adapter\PostgreSql\EntryTypesMap; use Flow\ETL\Adapter\PostgreSql\Exception\RuntimeException; use Flow\ETL\Adapter\PostgreSql\LoaderOptions\UpdateOptions; +use Flow\ETL\Adapter\PostgreSql\TypesMap; use Flow\ETL\Schema; use Flow\PostgreSql\Client\TypedValue; use Flow\PostgreSql\QueryBuilder\Sql; @@ -25,7 +25,7 @@ { public function __construct( private string $table, - private EntryTypesMap $typesMap, + private TypesMap $typesMap, ) {} /** diff --git a/src/adapter/etl-adapter-postgresql/src/Flow/ETL/Adapter/PostgreSql/ResultSchema.php b/src/adapter/etl-adapter-postgresql/src/Flow/ETL/Adapter/PostgreSql/ResultSchema.php index f09fdbaee6..810fb4a85e 100644 --- a/src/adapter/etl-adapter-postgresql/src/Flow/ETL/Adapter/PostgreSql/ResultSchema.php +++ b/src/adapter/etl-adapter-postgresql/src/Flow/ETL/Adapter/PostgreSql/ResultSchema.php @@ -24,7 +24,7 @@ private const array QUERY_OWN_STATES = ['42P01', '42703', '42883', '42704', '42501']; public function __construct( - private EntryTypesMap $typesMap = new EntryTypesMap(), + private TypesMap $typesMap = new TypesMap(), ) {} /** diff --git a/src/adapter/etl-adapter-postgresql/src/Flow/ETL/Adapter/PostgreSql/Schema/SortingStrategy/TypeStrategy.php b/src/adapter/etl-adapter-postgresql/src/Flow/ETL/Adapter/PostgreSql/Schema/SortingStrategy/TypeStrategy.php index 8a55fe877a..090b3fc023 100644 --- a/src/adapter/etl-adapter-postgresql/src/Flow/ETL/Adapter/PostgreSql/Schema/SortingStrategy/TypeStrategy.php +++ b/src/adapter/etl-adapter-postgresql/src/Flow/ETL/Adapter/PostgreSql/Schema/SortingStrategy/TypeStrategy.php @@ -4,9 +4,9 @@ namespace Flow\ETL\Adapter\PostgreSql\Schema\SortingStrategy; -use Flow\ETL\Adapter\PostgreSql\EntryTypesMap; use Flow\ETL\Adapter\PostgreSql\Exception\TypeMappingException; use Flow\ETL\Adapter\PostgreSql\PostgreSqlMetadata; +use Flow\ETL\Adapter\PostgreSql\TypesMap; use Flow\ETL\Schema\Definition; use Flow\ETL\Schema\SortingStrategy; @@ -15,7 +15,7 @@ final readonly class TypeStrategy implements SortingStrategy { public function __construct( - private EntryTypesMap $typesMap = new EntryTypesMap(), + private TypesMap $typesMap = new TypesMap(), ) {} /** @@ -37,7 +37,7 @@ public function compare(Definition $left, Definition $right): int return $typeComparison; } - return $left->entry()->name() <=> $right->entry()->name(); + return $left->reference()->name() <=> $right->reference()->name(); } /** diff --git a/src/adapter/etl-adapter-postgresql/src/Flow/ETL/Adapter/PostgreSql/SchemaConverter.php b/src/adapter/etl-adapter-postgresql/src/Flow/ETL/Adapter/PostgreSql/SchemaConverter.php index 225e16ff7e..ef3aa163c8 100644 --- a/src/adapter/etl-adapter-postgresql/src/Flow/ETL/Adapter/PostgreSql/SchemaConverter.php +++ b/src/adapter/etl-adapter-postgresql/src/Flow/ETL/Adapter/PostgreSql/SchemaConverter.php @@ -39,11 +39,11 @@ */ final readonly class SchemaConverter { - private EntryTypesMap $typesMap; + private TypesMap $typesMap; - public function __construct(?EntryTypesMap $typesMap = null) + public function __construct(?TypesMap $typesMap = null) { - $this->typesMap = $typesMap ?? new EntryTypesMap(); + $this->typesMap = $typesMap ?? new TypesMap(); } public function toFlowSchema(Table $table): Schema @@ -175,7 +175,7 @@ private function flowToColumn(Definition $definition, int $position): Column : null; return Column::create( - name: $definition->entry()->name(), + name: $definition->reference()->name(), type: $this->columnType($definition->type(), $metadata), nullable: $definition->isNullable() && !$metadata->has(PostgreSqlMetadata::PRIMARY_KEY->value), default: $default, @@ -222,7 +222,7 @@ private function groupColumnsByMetadata(Schema $schema, string $key): array foreach ($schema->definitions() as $definition) { if ($definition->metadata()->has($key)) { $name = (string) $definition->metadata()->getAs($key, type_string()); - $grouped[$name][] = $definition->entry()->name(); + $grouped[$name][] = $definition->reference()->name(); } } @@ -244,7 +244,7 @@ private function groupColumnsByIndexPrefix(Schema $schema, string $prefix): arra foreach ($definition->metadata()->normalize() as $key => $value) { if (str_starts_with($key, $prefix)) { $grouped[substr($key, strlen($prefix))][] = [ - 'column' => $definition->entry()->name(), + 'column' => $definition->reference()->name(), 'position' => is_int($value) ? $value : PHP_INT_MAX, 'ordinal' => $ordinal, ]; diff --git a/src/adapter/etl-adapter-postgresql/src/Flow/ETL/Adapter/PostgreSql/EntryTypesMap.php b/src/adapter/etl-adapter-postgresql/src/Flow/ETL/Adapter/PostgreSql/TypesMap.php similarity index 99% rename from src/adapter/etl-adapter-postgresql/src/Flow/ETL/Adapter/PostgreSql/EntryTypesMap.php rename to src/adapter/etl-adapter-postgresql/src/Flow/ETL/Adapter/PostgreSql/TypesMap.php index f32ebe2f29..e067ea65ce 100644 --- a/src/adapter/etl-adapter-postgresql/src/Flow/ETL/Adapter/PostgreSql/EntryTypesMap.php +++ b/src/adapter/etl-adapter-postgresql/src/Flow/ETL/Adapter/PostgreSql/TypesMap.php @@ -48,7 +48,7 @@ /** * Maps between Flow ETL types and PostgreSQL types. */ -final readonly class EntryTypesMap +final readonly class TypesMap { /** * Default mapping of Flow type classes to PostgreSQL value types. diff --git a/src/adapter/etl-adapter-postgresql/src/Flow/ETL/Adapter/PostgreSql/functions.php b/src/adapter/etl-adapter-postgresql/src/Flow/ETL/Adapter/PostgreSql/functions.php index 1fde40a363..dfde93d33f 100644 --- a/src/adapter/etl-adapter-postgresql/src/Flow/ETL/Adapter/PostgreSql/functions.php +++ b/src/adapter/etl-adapter-postgresql/src/Flow/ETL/Adapter/PostgreSql/functions.php @@ -165,7 +165,7 @@ function to_pgsql_schema_table( Schema $schema, string $tableName, string $databaseSchema = 'public', - ?EntryTypesMap $typesMap = null, + ?TypesMap $typesMap = null, ?TableOptions $options = null, ): Table { return (new SchemaConverter($typesMap))->toPostgreSqlTable($schema, $tableName, $databaseSchema, $options); @@ -175,13 +175,13 @@ function to_pgsql_schema_table( * Convert a PostgreSQL table definition into a Flow Schema. */ #[DocumentationDSL(module: Module::POSTGRESQL, type: DSLType::HELPER)] -function pgsql_table_to_flow_schema(Table $table, ?EntryTypesMap $typesMap = null): Schema +function pgsql_table_to_flow_schema(Table $table, ?TypesMap $typesMap = null): Schema { return (new SchemaConverter($typesMap))->toFlowSchema($table); } #[DocumentationDSL(module: Module::POSTGRESQL, type: DSLType::HELPER)] -function pgsql_schema_sort_by_type(?EntryTypesMap $typesMap = null): TypeStrategy +function pgsql_schema_sort_by_type(?TypesMap $typesMap = null): TypeStrategy { - return new TypeStrategy($typesMap ?? new EntryTypesMap()); + return new TypeStrategy($typesMap ?? new TypesMap()); } diff --git a/src/adapter/etl-adapter-postgresql/tests/Flow/ETL/Adapter/PostgreSql/Tests/Unit/QueryBuilder/DeleteQueryBuilderTest.php b/src/adapter/etl-adapter-postgresql/tests/Flow/ETL/Adapter/PostgreSql/Tests/Unit/QueryBuilder/DeleteQueryBuilderTest.php index 41c257c8de..0554c930e3 100644 --- a/src/adapter/etl-adapter-postgresql/tests/Flow/ETL/Adapter/PostgreSql/Tests/Unit/QueryBuilder/DeleteQueryBuilderTest.php +++ b/src/adapter/etl-adapter-postgresql/tests/Flow/ETL/Adapter/PostgreSql/Tests/Unit/QueryBuilder/DeleteQueryBuilderTest.php @@ -4,10 +4,10 @@ namespace Flow\ETL\Adapter\PostgreSql\Tests\Unit\QueryBuilder; -use Flow\ETL\Adapter\PostgreSql\EntryTypesMap; use Flow\ETL\Adapter\PostgreSql\Exception\RuntimeException; use Flow\ETL\Adapter\PostgreSql\LoaderOptions\DeleteOptions; use Flow\ETL\Adapter\PostgreSql\QueryBuilder\DeleteQueryBuilder; +use Flow\ETL\Adapter\PostgreSql\TypesMap; use Flow\PostgreSql\Client\TypedValue; use Flow\PostgreSql\Client\Types\ValueType; use PHPUnit\Framework\TestCase; @@ -20,7 +20,7 @@ final class DeleteQueryBuilderTest extends TestCase { public function test_build_returns_typed_values(): void { - $builder = new DeleteQueryBuilder('users', new EntryTypesMap()); + $builder = new DeleteQueryBuilder('users', new TypesMap()); [$_query, $params] = $builder->build(['id' => 1], schema(int_schema('id')), new DeleteOptions(['id'])); @@ -32,7 +32,7 @@ public function test_build_returns_typed_values(): void public function test_build_simple_delete(): void { - $builder = new DeleteQueryBuilder('users', new EntryTypesMap()); + $builder = new DeleteQueryBuilder('users', new TypesMap()); [$query, $params] = $builder->build(['id' => 1], schema(int_schema('id')), new DeleteOptions(['id'])); @@ -44,7 +44,7 @@ public function test_build_simple_delete(): void public function test_build_throws_when_no_primary_keys(): void { - $builder = new DeleteQueryBuilder('users', new EntryTypesMap()); + $builder = new DeleteQueryBuilder('users', new TypesMap()); $this->expectException(RuntimeException::class); $this->expectExceptionMessage('Primary keys must be specified for DELETE operation'); @@ -54,7 +54,7 @@ public function test_build_throws_when_no_primary_keys(): void public function test_build_throws_when_primary_key_not_in_row(): void { - $builder = new DeleteQueryBuilder('users', new EntryTypesMap()); + $builder = new DeleteQueryBuilder('users', new TypesMap()); $this->expectException(RuntimeException::class); $this->expectExceptionMessage('Primary key "id" not found in row'); @@ -64,7 +64,7 @@ public function test_build_throws_when_primary_key_not_in_row(): void public function test_build_with_multiple_primary_keys(): void { - $builder = new DeleteQueryBuilder('order_items', new EntryTypesMap()); + $builder = new DeleteQueryBuilder('order_items', new TypesMap()); [$query, $params] = $builder->build( ['order_id' => 1, 'product_id' => 2], diff --git a/src/adapter/etl-adapter-postgresql/tests/Flow/ETL/Adapter/PostgreSql/Tests/Unit/QueryBuilder/InsertQueryBuilderTest.php b/src/adapter/etl-adapter-postgresql/tests/Flow/ETL/Adapter/PostgreSql/Tests/Unit/QueryBuilder/InsertQueryBuilderTest.php index a094c8193d..2418070082 100644 --- a/src/adapter/etl-adapter-postgresql/tests/Flow/ETL/Adapter/PostgreSql/Tests/Unit/QueryBuilder/InsertQueryBuilderTest.php +++ b/src/adapter/etl-adapter-postgresql/tests/Flow/ETL/Adapter/PostgreSql/Tests/Unit/QueryBuilder/InsertQueryBuilderTest.php @@ -4,9 +4,9 @@ namespace Flow\ETL\Adapter\PostgreSql\Tests\Unit\QueryBuilder; -use Flow\ETL\Adapter\PostgreSql\EntryTypesMap; use Flow\ETL\Adapter\PostgreSql\LoaderOptions\InsertOptions; use Flow\ETL\Adapter\PostgreSql\QueryBuilder\InsertQueryBuilder; +use Flow\ETL\Adapter\PostgreSql\TypesMap; use Flow\ETL\Exception\InvalidArgumentException; use Flow\PostgreSql\Client\Types\ValueConverters; use PHPUnit\Framework\TestCase; @@ -20,7 +20,7 @@ final class InsertQueryBuilderTest extends TestCase { public function test_build_converts_each_value_with_its_columns_converter(): void { - [$_query, $params] = (new InsertQueryBuilder('users', new EntryTypesMap()))->build( + [$_query, $params] = (new InsertQueryBuilder('users', new TypesMap()))->build( ['id' => [1, 2], 'name' => ['Alice', 'Bob'], 'active' => [true, false]], 2, schema(int_schema('id'), str_schema('name'), bool_schema('active')), @@ -32,7 +32,7 @@ public function test_build_converts_each_value_with_its_columns_converter(): voi public function test_build_simple_insert(): void { - [$query, $params] = (new InsertQueryBuilder('users', new EntryTypesMap()))->build( + [$query, $params] = (new InsertQueryBuilder('users', new TypesMap()))->build( ['id' => [1, 2], 'name' => ['Alice', 'Bob']], 2, schema(int_schema('id'), str_schema('name')), @@ -47,7 +47,7 @@ public function test_build_simple_insert(): void public function test_build_with_null_values(): void { - [$_query, $params] = (new InsertQueryBuilder('users', new EntryTypesMap()))->build( + [$_query, $params] = (new InsertQueryBuilder('users', new TypesMap()))->build( ['id' => [1], 'name' => [null]], 1, schema(int_schema('id'), str_schema('name', nullable: true)), @@ -59,7 +59,7 @@ public function test_build_with_null_values(): void public function test_build_with_skip_conflicts(): void { - [$query, $_params] = (new InsertQueryBuilder('users', new EntryTypesMap()))->build( + [$query, $_params] = (new InsertQueryBuilder('users', new TypesMap()))->build( ['id' => [1], 'name' => ['Alice']], 1, schema(int_schema('id'), str_schema('name')), @@ -72,7 +72,7 @@ public function test_build_with_skip_conflicts(): void public function test_build_with_upsert_on_columns(): void { - [$query, $_params] = (new InsertQueryBuilder('users', new EntryTypesMap()))->build( + [$query, $_params] = (new InsertQueryBuilder('users', new TypesMap()))->build( ['id' => [1], 'name' => ['Alice']], 1, schema(int_schema('id'), str_schema('name')), @@ -87,7 +87,7 @@ public function test_build_with_upsert_on_columns(): void public function test_build_with_upsert_on_constraint(): void { - [$query, $_params] = (new InsertQueryBuilder('users', new EntryTypesMap()))->build( + [$query, $_params] = (new InsertQueryBuilder('users', new TypesMap()))->build( ['id' => [1], 'name' => ['Alice']], 1, schema(int_schema('id'), str_schema('name')), @@ -105,7 +105,7 @@ public function test_build_refuses_a_column_of_another_length(): void $this->expectException(InvalidArgumentException::class); $this->expectExceptionMessage('Column "name" holds 1 values, the insert 2 rows'); - (new InsertQueryBuilder('users', new EntryTypesMap()))->build( + (new InsertQueryBuilder('users', new TypesMap()))->build( ['id' => [1, 2], 'name' => ['Alice']], 2, schema(int_schema('id'), str_schema('name')), diff --git a/src/adapter/etl-adapter-postgresql/tests/Flow/ETL/Adapter/PostgreSql/Tests/Unit/QueryBuilder/UpdateQueryBuilderTest.php b/src/adapter/etl-adapter-postgresql/tests/Flow/ETL/Adapter/PostgreSql/Tests/Unit/QueryBuilder/UpdateQueryBuilderTest.php index fa01badd37..65a7956c54 100644 --- a/src/adapter/etl-adapter-postgresql/tests/Flow/ETL/Adapter/PostgreSql/Tests/Unit/QueryBuilder/UpdateQueryBuilderTest.php +++ b/src/adapter/etl-adapter-postgresql/tests/Flow/ETL/Adapter/PostgreSql/Tests/Unit/QueryBuilder/UpdateQueryBuilderTest.php @@ -4,10 +4,10 @@ namespace Flow\ETL\Adapter\PostgreSql\Tests\Unit\QueryBuilder; -use Flow\ETL\Adapter\PostgreSql\EntryTypesMap; use Flow\ETL\Adapter\PostgreSql\Exception\RuntimeException; use Flow\ETL\Adapter\PostgreSql\LoaderOptions\UpdateOptions; use Flow\ETL\Adapter\PostgreSql\QueryBuilder\UpdateQueryBuilder; +use Flow\ETL\Adapter\PostgreSql\TypesMap; use Flow\PostgreSql\Client\TypedValue; use Flow\PostgreSql\Client\Types\ValueType; use PHPUnit\Framework\TestCase; @@ -20,7 +20,7 @@ final class UpdateQueryBuilderTest extends TestCase { public function test_build_returns_null_when_no_columns_to_update(): void { - $builder = new UpdateQueryBuilder('users', new EntryTypesMap()); + $builder = new UpdateQueryBuilder('users', new TypesMap()); [$query, $params] = $builder->build(['id' => 1], schema(int_schema('id')), new UpdateOptions(['id'])); @@ -30,7 +30,7 @@ public function test_build_returns_null_when_no_columns_to_update(): void public function test_build_returns_typed_values(): void { - $builder = new UpdateQueryBuilder('users', new EntryTypesMap()); + $builder = new UpdateQueryBuilder('users', new TypesMap()); [$_query, $params] = $builder->build( ['id' => 1, 'name' => 'Alice'], @@ -49,7 +49,7 @@ public function test_build_returns_typed_values(): void public function test_build_simple_update(): void { - $builder = new UpdateQueryBuilder('users', new EntryTypesMap()); + $builder = new UpdateQueryBuilder('users', new TypesMap()); [$query, $params] = $builder->build( ['id' => 1, 'name' => 'Alice'], @@ -67,7 +67,7 @@ public function test_build_simple_update(): void public function test_build_throws_when_no_primary_keys(): void { - $builder = new UpdateQueryBuilder('users', new EntryTypesMap()); + $builder = new UpdateQueryBuilder('users', new TypesMap()); $this->expectException(RuntimeException::class); $this->expectExceptionMessage('Primary keys must be specified for UPDATE operation'); @@ -81,7 +81,7 @@ public function test_build_throws_when_no_primary_keys(): void public function test_build_throws_when_primary_key_not_in_row(): void { - $builder = new UpdateQueryBuilder('users', new EntryTypesMap()); + $builder = new UpdateQueryBuilder('users', new TypesMap()); $this->expectException(RuntimeException::class); $this->expectExceptionMessage('Primary key "id" not found in row'); @@ -91,7 +91,7 @@ public function test_build_throws_when_primary_key_not_in_row(): void public function test_build_with_multiple_primary_keys(): void { - $builder = new UpdateQueryBuilder('order_items', new EntryTypesMap()); + $builder = new UpdateQueryBuilder('order_items', new TypesMap()); [$query, $params] = $builder->build( ['order_id' => 1, 'product_id' => 2, 'quantity' => 5], diff --git a/src/adapter/etl-adapter-postgresql/tests/Flow/ETL/Adapter/PostgreSql/Tests/Unit/EntryTypesMapTest.php b/src/adapter/etl-adapter-postgresql/tests/Flow/ETL/Adapter/PostgreSql/Tests/Unit/TypesMapTest.php similarity index 83% rename from src/adapter/etl-adapter-postgresql/tests/Flow/ETL/Adapter/PostgreSql/Tests/Unit/EntryTypesMapTest.php rename to src/adapter/etl-adapter-postgresql/tests/Flow/ETL/Adapter/PostgreSql/Tests/Unit/TypesMapTest.php index c3b36598cd..79f3f1ec80 100644 --- a/src/adapter/etl-adapter-postgresql/tests/Flow/ETL/Adapter/PostgreSql/Tests/Unit/EntryTypesMapTest.php +++ b/src/adapter/etl-adapter-postgresql/tests/Flow/ETL/Adapter/PostgreSql/Tests/Unit/TypesMapTest.php @@ -6,8 +6,8 @@ use DateTimeImmutable; use DateTimeZone; -use Flow\ETL\Adapter\PostgreSql\EntryTypesMap; use Flow\ETL\Adapter\PostgreSql\Exception\TypeMappingException; +use Flow\ETL\Adapter\PostgreSql\TypesMap; use Flow\PostgreSql\Client\TypedValue; use Flow\PostgreSql\Client\Types\ResultCaster; use Flow\PostgreSql\Client\Types\ValueType; @@ -38,7 +38,7 @@ use function Flow\Types\DSL\type_uuid; use function Flow\Types\DSL\type_xml; -final class EntryTypesMapTest extends TestCase +final class TypesMapTest extends TestCase { /** * The exact Flow type each pg name maps to. @@ -140,10 +140,7 @@ public static function provide_unmapped_types(): Generator #[DataProvider('provide_mapped_types_with_their_flow_type')] public function test_every_mapped_postgresql_type_becomes_its_flow_type(string $pgType, Type $expected): void { - static::assertEquals( - $expected, - (new EntryTypesMap())->toFlowTypeWithTextFloor(column_type_from_string($pgType)), - ); + static::assertEquals($expected, (new TypesMap())->toFlowTypeWithTextFloor(column_type_from_string($pgType))); } public function test_an_unrecognised_name_is_refused_on_the_catalog_route(): void @@ -153,14 +150,14 @@ public function test_an_unrecognised_name_is_refused_on_the_catalog_route(): voi // to map the type explicitly instead of silently receiving a string column. $this->expectException(TypeMappingException::class); - (new EntryTypesMap())->toFlowType(column_type_from_string('hstore')); + (new TypesMap())->toFlowType(column_type_from_string('hstore')); } public function test_an_unrecognised_name_takes_the_text_floor_on_the_result_route(): void { static::assertEquals( type_string(), - (new EntryTypesMap())->toFlowTypeWithTextFloor(column_type_from_string('hstore')), + (new TypesMap())->toFlowTypeWithTextFloor(column_type_from_string('hstore')), ); } @@ -169,7 +166,7 @@ public function test_every_mapped_type_has_a_caster_arm(string $pgType, string $ { // Map subset of arms, not pairwise: a mapping is only legitimate while the caster produces // a value the derived schema accepts. - $flowType = (new EntryTypesMap())->toFlowTypeWithTextFloor(column_type_from_string($pgType)); + $flowType = (new TypesMap())->toFlowTypeWithTextFloor(column_type_from_string($pgType)); static::assertTrue($flowType->isValid($flowType->cast((new ResultCaster())->cast($wireValue, $pgType)))); } @@ -179,19 +176,19 @@ public function test_record_and_the_geometric_types_are_refused(string $pgType): { $this->expectException(TypeMappingException::class); - (new EntryTypesMap())->toFlowTypeWithTextFloor(column_type_from_string($pgType)); + (new TypesMap())->toFlowTypeWithTextFloor(column_type_from_string($pgType)); } public function test_an_array_of_an_unmapped_element_type_is_refused(): void { $this->expectException(TypeMappingException::class); - (new EntryTypesMap())->toFlowTypeWithTextFloor(column_type_from_string('_point')); + (new TypesMap())->toFlowTypeWithTextFloor(column_type_from_string('_point')); } public function test_an_array_type_becomes_a_list_of_its_element_type(): void { - $map = new EntryTypesMap(); + $map = new TypesMap(); // A pg array may hold SQL NULLs, which the caster preserves, so the element type has to // admit them or the read corrupts them. @@ -212,7 +209,7 @@ public function test_an_array_type_becomes_a_list_of_its_element_type(): void #[DataProvider('provide_catalog_array_types')] public function test_an_array_column_becomes_a_list_on_the_catalog_route(string $pgType, Type $expected): void { - static::assertEquals($expected, (new EntryTypesMap())->toFlowType(column_type_from_string($pgType))); + static::assertEquals($expected, (new TypesMap())->toFlowType(column_type_from_string($pgType))); } /** @@ -227,7 +224,7 @@ public static function provide_catalog_array_types(): Generator public function test_allows_override_for_integer_type_to_int2(): void { - $map = new EntryTypesMap([ + $map = new TypesMap([ IntegerType::class => ValueType::INT2, ]); @@ -240,7 +237,7 @@ public function test_allows_override_for_integer_type_to_int2(): void public function test_value_type_is_the_one_map_wraps_values_in(): void { - $map = new EntryTypesMap([IntegerType::class => ValueType::INT2]); + $map = new TypesMap([IntegerType::class => ValueType::INT2]); static::assertSame(ValueType::INT2, $map->valueType('small_count', type_integer())); static::assertSame(ValueType::TEXT, $map->valueType('name', type_string())); @@ -250,12 +247,12 @@ public function test_value_type_refuses_an_unmapped_type(): void { $this->expectException(TypeMappingException::class); - (new EntryTypesMap())->valueType('payload', type_array()); + (new TypesMap())->valueType('payload', type_array()); } public function test_maps_boolean_type_to_bool(): void { - $result = (new EntryTypesMap())->map('active', type_boolean(), true); + $result = (new TypesMap())->map('active', type_boolean(), true); static::assertInstanceOf(TypedValue::class, $result); static::assertSame(ValueType::BOOL, $result->targetType); @@ -265,7 +262,7 @@ public function test_maps_boolean_type_to_bool(): void public function test_maps_datetime_type_to_timestamp(): void { $date = new DateTimeImmutable('2024-01-15 10:30:00'); - $result = (new EntryTypesMap())->map('created_at', type_datetime(), $date); + $result = (new TypesMap())->map('created_at', type_datetime(), $date); static::assertInstanceOf(TypedValue::class, $result); static::assertSame(ValueType::TIMESTAMP, $result->targetType); @@ -274,7 +271,7 @@ public function test_maps_datetime_type_to_timestamp(): void public function test_maps_float_type_to_float8(): void { - $result = (new EntryTypesMap())->map('price', type_float(), 99.99); + $result = (new TypesMap())->map('price', type_float(), 99.99); static::assertInstanceOf(TypedValue::class, $result); static::assertSame(ValueType::FLOAT8, $result->targetType); @@ -283,7 +280,7 @@ public function test_maps_float_type_to_float8(): void public function test_maps_integer_type_to_int8(): void { - $result = (new EntryTypesMap())->map('count', type_integer(), 42); + $result = (new TypesMap())->map('count', type_integer(), 42); static::assertInstanceOf(TypedValue::class, $result); static::assertSame(ValueType::INT8, $result->targetType); @@ -292,7 +289,7 @@ public function test_maps_integer_type_to_int8(): void public function test_maps_json_type_to_jsonb(): void { - $result = (new EntryTypesMap())->map('data', type_json(), ['key' => 'value']); + $result = (new TypesMap())->map('data', type_json(), ['key' => 'value']); static::assertInstanceOf(TypedValue::class, $result); static::assertSame(ValueType::JSONB, $result->targetType); @@ -300,7 +297,7 @@ public function test_maps_json_type_to_jsonb(): void public function test_maps_list_type_to_jsonb(): void { - $result = (new EntryTypesMap())->map('tags', type_list(type_integer()), [1, 2, 3]); + $result = (new TypesMap())->map('tags', type_list(type_integer()), [1, 2, 3]); static::assertInstanceOf(TypedValue::class, $result); static::assertSame(ValueType::JSONB, $result->targetType); @@ -309,7 +306,7 @@ public function test_maps_list_type_to_jsonb(): void public function test_maps_map_type_to_jsonb(): void { - $result = (new EntryTypesMap())->map('metadata', type_map(type_string(), type_string()), ['key' => 'value']); + $result = (new TypesMap())->map('metadata', type_map(type_string(), type_string()), ['key' => 'value']); static::assertInstanceOf(TypedValue::class, $result); static::assertSame(ValueType::JSONB, $result->targetType); @@ -318,12 +315,12 @@ public function test_maps_map_type_to_jsonb(): void public function test_maps_null_value_to_null(): void { - static::assertNull((new EntryTypesMap())->map('name', type_string(), null)); + static::assertNull((new TypesMap())->map('name', type_string(), null)); } public function test_maps_string_type_to_text(): void { - $result = (new EntryTypesMap())->map('name', type_string(), 'Alice'); + $result = (new TypesMap())->map('name', type_string(), 'Alice'); static::assertInstanceOf(TypedValue::class, $result); static::assertSame(ValueType::TEXT, $result->targetType); @@ -332,11 +329,10 @@ public function test_maps_string_type_to_text(): void public function test_maps_structure_type_to_jsonb(): void { - $result = (new EntryTypesMap())->map( - 'user', - type_structure(['name' => type_string(), 'age' => type_integer()]), - ['name' => 'Alice', 'age' => 30], - ); + $result = (new TypesMap())->map('user', type_structure(['name' => type_string(), 'age' => type_integer()]), [ + 'name' => 'Alice', + 'age' => 30, + ]); static::assertInstanceOf(TypedValue::class, $result); static::assertSame(ValueType::JSONB, $result->targetType); @@ -344,7 +340,7 @@ public function test_maps_structure_type_to_jsonb(): void public function test_maps_uuid_type_to_uuid(): void { - $result = (new EntryTypesMap())->map('id', type_uuid(), '550e8400-e29b-41d4-a716-446655440000'); + $result = (new TypesMap())->map('id', type_uuid(), '550e8400-e29b-41d4-a716-446655440000'); static::assertInstanceOf(TypedValue::class, $result); static::assertSame(ValueType::UUID, $result->targetType); @@ -352,7 +348,7 @@ public function test_maps_uuid_type_to_uuid(): void public function test_maps_time_zone_type_to_text(): void { - $result = (new EntryTypesMap())->map('tz', type_time_zone(), new DateTimeZone('Europe/Warsaw')); + $result = (new TypesMap())->map('tz', type_time_zone(), new DateTimeZone('Europe/Warsaw')); static::assertInstanceOf(TypedValue::class, $result); static::assertSame(ValueType::TEXT, $result->targetType); @@ -360,7 +356,7 @@ public function test_maps_time_zone_type_to_text(): void public function test_to_column_type_allows_override(): void { - $map = new EntryTypesMap([], [ + $map = new TypesMap([], [ StringType::class => ColumnType::varchar(255), ]); @@ -369,42 +365,42 @@ public function test_to_column_type_allows_override(): void public function test_to_column_type_maps_integer_to_bigint(): void { - $map = new EntryTypesMap(); + $map = new TypesMap(); static::assertTrue($map->toColumnType(type_integer())->isEqual(ColumnType::bigint())); } public function test_to_column_type_maps_json_to_jsonb(): void { - $map = new EntryTypesMap(); + $map = new TypesMap(); static::assertTrue($map->toColumnType(type_json())->isEqual(ColumnType::jsonb())); } public function test_to_column_type_maps_xml_to_xml(): void { - $map = new EntryTypesMap(); + $map = new TypesMap(); static::assertTrue($map->toColumnType(type_xml())->isEqual(ColumnType::xml())); } public function test_to_flow_type_maps_bigint_to_integer(): void { - $map = new EntryTypesMap(); + $map = new TypesMap(); static::assertInstanceOf(IntegerType::class, $map->toFlowType(ColumnType::bigint())); } public function test_to_flow_type_maps_jsonb_to_json(): void { - $map = new EntryTypesMap(); + $map = new TypesMap(); static::assertInstanceOf(JsonType::class, $map->toFlowType(ColumnType::jsonb())); } public function test_to_flow_type_maps_varchar_to_string(): void { - $map = new EntryTypesMap(); + $map = new TypesMap(); static::assertInstanceOf(StringType::class, $map->toFlowType(ColumnType::varchar(100))); } @@ -414,9 +410,6 @@ public function test_to_flow_type_floors_an_unknown_type_name_to_string(): void // The result route cannot ask the catalog whether an unknown name is an enum, a domain or // an extension type, and pg transmits all of them as text, so they take the string floor. // Only record and the geometric types still throw - see the test below. - static::assertEquals( - type_string(), - (new EntryTypesMap())->toFlowTypeWithTextFloor(ColumnType::custom('hstore')), - ); + static::assertEquals(type_string(), (new TypesMap())->toFlowTypeWithTextFloor(ColumnType::custom('hstore'))); } } diff --git a/src/adapter/etl-adapter-seal/src/Flow/ETL/Adapter/Seal/SchemaConverter.php b/src/adapter/etl-adapter-seal/src/Flow/ETL/Adapter/Seal/SchemaConverter.php index bf8462ee48..dde3822042 100644 --- a/src/adapter/etl-adapter-seal/src/Flow/ETL/Adapter/Seal/SchemaConverter.php +++ b/src/adapter/etl-adapter-seal/src/Flow/ETL/Adapter/Seal/SchemaConverter.php @@ -64,7 +64,7 @@ public function toSealSchema(Schema $schema, string $indexName, ?string $identif $identifiers = 0; foreach ($schema->definitions() as $definition) { - $name = $definition->entry()->name(); + $name = $definition->reference()->name(); $metadata = $definition->metadata(); if ($name === $identifier || $metadata->has(SealMetadata::IDENTIFIER->value)) { diff --git a/src/adapter/etl-adapter-seal/src/Flow/ETL/Adapter/Seal/SealEncoder.php b/src/adapter/etl-adapter-seal/src/Flow/ETL/Adapter/Seal/SealEncoder.php index b45895187c..c2767f9ace 100644 --- a/src/adapter/etl-adapter-seal/src/Flow/ETL/Adapter/Seal/SealEncoder.php +++ b/src/adapter/etl-adapter-seal/src/Flow/ETL/Adapter/Seal/SealEncoder.php @@ -49,7 +49,7 @@ public function encode(Rows $rows): array $columns = []; foreach ($rows->schema()->definitions() as $definition) { - $name = $definition->entry()->name(); + $name = $definition->reference()->name(); $columns[$name] = $this->column($definition->type(), $rows->column($name)); } diff --git a/src/adapter/etl-adapter-seal/src/Flow/ETL/Adapter/Seal/SealLoader.php b/src/adapter/etl-adapter-seal/src/Flow/ETL/Adapter/Seal/SealLoader.php index 960f2bb508..6048d39908 100644 --- a/src/adapter/etl-adapter-seal/src/Flow/ETL/Adapter/Seal/SealLoader.php +++ b/src/adapter/etl-adapter-seal/src/Flow/ETL/Adapter/Seal/SealLoader.php @@ -28,7 +28,7 @@ final class SealLoader implements Loader private ?SealEncoder $encoder = null; - private string $identifierEntry = 'id'; + private string $identifierColumn = 'id'; public function __construct( private readonly EngineInterface $engine, @@ -81,9 +81,9 @@ public function withDateTimeFormat(string $dateTimeFormat): self return $this; } - public function withIdentifierEntry(string $entry): self + public function withIdentifierColumn(string $column): self { - $this->identifierEntry = $entry; + $this->identifierColumn = $column; return $this; } @@ -100,14 +100,14 @@ private function deleteIdentifiers(Rows $rows): Generator { foreach ($this->encoder()->encode($rows) as $document) { // @mago-ignore analysis:mixed-assignment - $identifier = array_key_exists($this->identifierEntry, $document) - ? $document[$this->identifierEntry] + $identifier = array_key_exists($this->identifierColumn, $document) + ? $document[$this->identifierColumn] : null; if (!is_string($identifier) && !is_int($identifier)) { throw new RuntimeException( - 'Entry "' - . $this->identifierEntry + 'Column "' + . $this->identifierColumn . '" cannot be used as a document identifier for DELETE operation', ); } diff --git a/src/adapter/etl-adapter-seal/tests/Flow/ETL/Adapter/Seal/Tests/Integration/SealAllEntryTypesTest.php b/src/adapter/etl-adapter-seal/tests/Flow/ETL/Adapter/Seal/Tests/Integration/SealAllColumnTypesTest.php similarity index 94% rename from src/adapter/etl-adapter-seal/tests/Flow/ETL/Adapter/Seal/Tests/Integration/SealAllEntryTypesTest.php rename to src/adapter/etl-adapter-seal/tests/Flow/ETL/Adapter/Seal/Tests/Integration/SealAllColumnTypesTest.php index bcde2fb029..a604857b03 100644 --- a/src/adapter/etl-adapter-seal/tests/Flow/ETL/Adapter/Seal/Tests/Integration/SealAllEntryTypesTest.php +++ b/src/adapter/etl-adapter-seal/tests/Flow/ETL/Adapter/Seal/Tests/Integration/SealAllColumnTypesTest.php @@ -12,7 +12,7 @@ use function Flow\ETL\DSL\analyze; use function Flow\ETL\DSL\data_frame; -final class SealAllEntryTypesTest extends IntegrationTestCase +final class SealAllColumnTypesTest extends IntegrationTestCase { public function test_indexing_pipeline_loads_all_flow_entry_types(): void { diff --git a/src/adapter/etl-adapter-seal/tests/Flow/ETL/Adapter/Seal/Tests/Integration/SealLoaderTest.php b/src/adapter/etl-adapter-seal/tests/Flow/ETL/Adapter/Seal/Tests/Integration/SealLoaderTest.php index 124bab1ac1..c01cc01c0d 100644 --- a/src/adapter/etl-adapter-seal/tests/Flow/ETL/Adapter/Seal/Tests/Integration/SealLoaderTest.php +++ b/src/adapter/etl-adapter-seal/tests/Flow/ETL/Adapter/Seal/Tests/Integration/SealLoaderTest.php @@ -63,7 +63,7 @@ public function test_deleting_documents_using_a_custom_identifier_entry(): void $this->sealContext()->refresh(); to_seal_delete($engine, 'products') - ->withIdentifierEntry('sku') + ->withIdentifierColumn('sku') ->load(array_to_rows([['sku' => 'SKU_0001']], schema(string_schema('sku'))), flow_context()); $this->sealContext()->refresh(); diff --git a/src/adapter/etl-adapter-seal/tests/Flow/ETL/Adapter/Seal/Tests/Unit/SealLoaderTest.php b/src/adapter/etl-adapter-seal/tests/Flow/ETL/Adapter/Seal/Tests/Unit/SealLoaderTest.php index 67819e1d9e..8a3b8e5572 100644 --- a/src/adapter/etl-adapter-seal/tests/Flow/ETL/Adapter/Seal/Tests/Unit/SealLoaderTest.php +++ b/src/adapter/etl-adapter-seal/tests/Flow/ETL/Adapter/Seal/Tests/Unit/SealLoaderTest.php @@ -27,7 +27,7 @@ public function test_deleting_with_a_non_scalar_identifier_entry_throws(): void $engine = $this->sealContext()->engine(to_seal_schema(schema(str_schema('id')), 'users', 'id')); $this->expectException(RuntimeException::class); - $this->expectExceptionMessage('Entry "id" cannot be used as a document identifier for DELETE operation'); + $this->expectExceptionMessage('Column "id" cannot be used as a document identifier for DELETE operation'); to_seal_delete($engine, 'users')->load(array_to_rows([['id' => [ '1', @@ -73,6 +73,6 @@ public function test_with_identifier_entry_returns_the_same_loader_instance(): v 'users', ); - static::assertSame($loader, $loader->withIdentifierEntry('sku')); + static::assertSame($loader, $loader->withIdentifierColumn('sku')); } } diff --git a/src/adapter/etl-adapter-text/src/Flow/ETL/Adapter/Text/TextEncoder.php b/src/adapter/etl-adapter-text/src/Flow/ETL/Adapter/Text/TextEncoder.php index 39e7f456a3..f53451c42f 100644 --- a/src/adapter/etl-adapter-text/src/Flow/ETL/Adapter/Text/TextEncoder.php +++ b/src/adapter/etl-adapter-text/src/Flow/ETL/Adapter/Text/TextEncoder.php @@ -55,7 +55,7 @@ public function encode(Rows $rows): string return ( implode( $this->newLineSeparator, - (new TextValues())->texts($type, $rows->column($definitions[0]->entry()->name())->physicals()), + (new TextValues())->texts($type, $rows->column($definitions[0]->reference()->name())->physicals()), ) . $this->newLineSeparator ); } diff --git a/src/adapter/etl-adapter-text/tests/Flow/ETL/Adapter/Text/Tests/Integration/TextTest.php b/src/adapter/etl-adapter-text/tests/Flow/ETL/Adapter/Text/Tests/Integration/TextTest.php index f78a1ba0a2..d0fe84d87b 100644 --- a/src/adapter/etl-adapter-text/tests/Flow/ETL/Adapter/Text/Tests/Integration/TextTest.php +++ b/src/adapter/etl-adapter-text/tests/Flow/ETL/Adapter/Text/Tests/Integration/TextTest.php @@ -61,7 +61,7 @@ public function test_transformation_loader_writes_all_batches_to_text(): void { data_frame() ->read(from_sequence_number('id', 1, 12)) - ->withEntry('name', lit('dropped by the transformation')) + ->withColumn('name', lit('dropped by the transformation')) ->batchSize(4) ->write(to_transformation( select('id'), diff --git a/src/adapter/etl-adapter-xml/src/Flow/ETL/Adapter/XML/XMLEncoder.php b/src/adapter/etl-adapter-xml/src/Flow/ETL/Adapter/XML/XMLEncoder.php index e12925b440..e9e273a0fd 100644 --- a/src/adapter/etl-adapter-xml/src/Flow/ETL/Adapter/XML/XMLEncoder.php +++ b/src/adapter/etl-adapter-xml/src/Flow/ETL/Adapter/XML/XMLEncoder.php @@ -78,7 +78,7 @@ public function encode(Rows $rows): string $children = []; foreach ($definitions as $definition) { - $name = $definition->entry()->name(); + $name = $definition->reference()->name(); $type = $definition->type(); $bare = type_bare($type); $physicals = $rows->column($name)->physicals(); diff --git a/src/adapter/etl-adapter-xml/tests/Flow/ETL/Adapter/XML/Tests/Integration/Loader/XMLLoaderTest.php b/src/adapter/etl-adapter-xml/tests/Flow/ETL/Adapter/XML/Tests/Integration/Loader/XMLLoaderTest.php index 3872b76f4c..80cf1e3acb 100644 --- a/src/adapter/etl-adapter-xml/tests/Flow/ETL/Adapter/XML/Tests/Integration/Loader/XMLLoaderTest.php +++ b/src/adapter/etl-adapter-xml/tests/Flow/ETL/Adapter/XML/Tests/Integration/Loader/XMLLoaderTest.php @@ -61,7 +61,7 @@ public function test_partitioning_xml_file(): void $dataset, df() ->read(from_xml(__DIR__ . '/var/test_partitioning_xml_file/**/*.xml')->withXMLNodePath('rows/row')) - ->withEntry('id', ref('node')->xpath('id')->domElementValue()->cast('int')) + ->withColumn('id', ref('node')->xpath('id')->domElementValue()->cast('int')) // color and size are no longer in the body; the read takes them from the path ->drop('node') ->sortBy([ref('id')->asc()]) @@ -74,7 +74,7 @@ public function test_transformation_loader_writes_all_batches_to_xml(): void { df() ->read(from_sequence_number('id', 1, 12)) - ->withEntry('name', lit('dropped by the transformation')) + ->withColumn('name', lit('dropped by the transformation')) ->batchSize(4) ->write(to_transformation( select('id'), diff --git a/src/adapter/etl-adapter-xml/tests/Flow/ETL/Adapter/XML/Tests/Integration/XMLParserExtractorTest.php b/src/adapter/etl-adapter-xml/tests/Flow/ETL/Adapter/XML/Tests/Integration/XMLParserExtractorTest.php index 70dbfd67ba..f1f1ffed60 100644 --- a/src/adapter/etl-adapter-xml/tests/Flow/ETL/Adapter/XML/Tests/Integration/XMLParserExtractorTest.php +++ b/src/adapter/etl-adapter-xml/tests/Flow/ETL/Adapter/XML/Tests/Integration/XMLParserExtractorTest.php @@ -174,7 +174,7 @@ public function test_reading_xml_with_ancestor_namespace_declaration(): void { $rows = df() ->read(from_xml(__DIR__ . '/../Fixtures/namespaced_feed.xml', 'feed/entry')) - ->withEntry('title', ref('node')->xpath('/entry/g:title')->domElementValue()) + ->withColumn('title', ref('node')->xpath('/entry/g:title')->domElementValue()) ->fetch(); static::assertSame(['Product 1', 'Product 2'], [ @@ -219,7 +219,7 @@ public function test_reading_xml_with_namespace_on_captured_root(): void { $rows = df() ->read(from_xml(__DIR__ . '/../Fixtures/namespaced_on_captured_root.xml', 'feed/entry')) - ->withEntry('title', ref('node')->xpath('/entry/g:title')->domElementValue()) + ->withColumn('title', ref('node')->xpath('/entry/g:title')->domElementValue()) ->fetch(); static::assertSame('Product 1', $rows->column('title')->value(0)); diff --git a/src/adapter/etl-adapter-xml/tests/Flow/ETL/Adapter/XML/Tests/Integration/XMLTest.php b/src/adapter/etl-adapter-xml/tests/Flow/ETL/Adapter/XML/Tests/Integration/XMLTest.php index 0d321d6b49..8b01523bdb 100644 --- a/src/adapter/etl-adapter-xml/tests/Flow/ETL/Adapter/XML/Tests/Integration/XMLTest.php +++ b/src/adapter/etl-adapter-xml/tests/Flow/ETL/Adapter/XML/Tests/Integration/XMLTest.php @@ -22,21 +22,21 @@ public function test_transforming_xml_into_a_tabular_dataset(): void { $rows = df() ->read(from_xml(path(__DIR__ . '/../Fixtures/simple_items.xml'))->withXMLNodePath('root/items')) - ->withEntry( + ->withColumn( 'parent_attribute_01', ref('node')->domElementAttributeValue('items_attribute_01')->cast(type_integer()), ) - ->withEntry( + ->withColumn( 'parent_attribute_02', ref('node')->domElementAttributeValue('items_attribute_02')->cast(type_integer()), ) - ->withEntry('items', ref('node')->xpath('/*/item')) - ->withEntry('item', ref('items')->expand()) - ->withEntry( + ->withColumn('items', ref('node')->xpath('/*/item')) + ->withColumn('item', ref('items')->expand()) + ->withColumn( 'item_attribute_01', ref('item')->domElementAttributeValue('item_attribute_01')->cast(type_integer()), ) - ->withEntry('value', ref('item')->cast(type_integer())) + ->withColumn('value', ref('item')->cast(type_integer())) ->drop('node', 'items', 'item') ->fetch(); @@ -66,22 +66,22 @@ public function test_transforming_xml_into_a_tabular_dataset_from_partitioned_da { $rows = df() ->read(from_xml(path(__DIR__ . '/../Fixtures/partitioned/date=*/*.xml'))->withXMLNodePath('root/items')) - ->withEntry( + ->withColumn( 'parent_attribute_01', ref('node')->domElementAttributeValue('items_attribute_01')->cast(type_integer()), ) - ->withEntry( + ->withColumn( 'parent_attribute_02', ref('node')->domElementAttributeValue('items_attribute_02')->cast(type_integer()), ) - ->withEntry('items', ref('node')->xpath('/*/item')) - ->withEntry('item', ref('items')->expand()) - ->withEntry( + ->withColumn('items', ref('node')->xpath('/*/item')) + ->withColumn('item', ref('items')->expand()) + ->withColumn( 'item_attribute_01', ref('item')->domElementAttributeValue('item_attribute_01')->cast(type_integer()), ) - ->withEntry('value', ref('item')->cast(type_integer())) - ->withEntry('date', ref('date')->cast('date')) + ->withColumn('value', ref('item')->cast(type_integer())) + ->withColumn('date', ref('date')->cast('date')) ->sortBy([ref('date')->asc()]) ->drop('node', 'items', 'item') ->fetch(); diff --git a/src/bridge/openapi/specification/src/Flow/Bridge/OpenAPI/Specification/OpenAPIConverter.php b/src/bridge/openapi/specification/src/Flow/Bridge/OpenAPI/Specification/OpenAPIConverter.php index 66e0e55c18..f387647997 100644 --- a/src/bridge/openapi/specification/src/Flow/Bridge/OpenAPI/Specification/OpenAPIConverter.php +++ b/src/bridge/openapi/specification/src/Flow/Bridge/OpenAPI/Specification/OpenAPIConverter.php @@ -123,7 +123,7 @@ public function toOpenAPI(Schema $schema): array $properties = []; foreach ($schema->definitions() as $definition) { - $properties[$definition->entry()->name()] = $this->convertDefinitionToOpenAPI($definition); + $properties[$definition->reference()->name()] = $this->convertDefinitionToOpenAPI($definition); } return [ diff --git a/src/bridge/openapi/specification/tests/Flow/Bridge/OpenAPI/Specification/Tests/Unit/FlowToOpenAPIConverterTest.php b/src/bridge/openapi/specification/tests/Flow/Bridge/OpenAPI/Specification/Tests/Unit/FlowToOpenAPIConverterTest.php index c901052dbb..2e37b6b0ce 100644 --- a/src/bridge/openapi/specification/tests/Flow/Bridge/OpenAPI/Specification/Tests/Unit/FlowToOpenAPIConverterTest.php +++ b/src/bridge/openapi/specification/tests/Flow/Bridge/OpenAPI/Specification/Tests/Unit/FlowToOpenAPIConverterTest.php @@ -277,7 +277,7 @@ public function test_to_open_api_with_basic_types(Definition $definition, array [ 'type' => 'object', 'properties' => [ - $definition->entry()->name() => $expected, + $definition->reference()->name() => $expected, ], ], $result, @@ -681,7 +681,7 @@ public function test_to_open_api_with_special_types(Definition $definition, arra [ 'type' => 'object', 'properties' => [ - $definition->entry()->name() => $expected, + $definition->reference()->name() => $expected, ], ], $result, diff --git a/src/bridge/openapi/specification/tests/Flow/Bridge/OpenAPI/Specification/Tests/Unit/OpenAPIConverterTest.php b/src/bridge/openapi/specification/tests/Flow/Bridge/OpenAPI/Specification/Tests/Unit/OpenAPIConverterTest.php index 6c578e3a4c..6391c8f48d 100644 --- a/src/bridge/openapi/specification/tests/Flow/Bridge/OpenAPI/Specification/Tests/Unit/OpenAPIConverterTest.php +++ b/src/bridge/openapi/specification/tests/Flow/Bridge/OpenAPI/Specification/Tests/Unit/OpenAPIConverterTest.php @@ -59,26 +59,26 @@ enum_schema('status', IntegrationTestUnitEnum::class, false), $definitions = array_values($convertedSchema->definitions()); - static::assertSame('id', $definitions[0]->entry()->name()); + static::assertSame('id', $definitions[0]->reference()->name()); static::assertSame(IntegerType::class, $definitions[0]->type()::class); static::assertFalse($definitions[0]->isNullable()); static::assertTrue($definitions[0]->metadata()->has('description')); static::assertTrue($definitions[0]->metadata()->has('example')); - static::assertSame('name', $definitions[1]->entry()->name()); + static::assertSame('name', $definitions[1]->reference()->name()); static::assertSame(StringType::class, $definitions[1]->type()::class); static::assertTrue($definitions[1]->isNullable()); static::assertTrue($definitions[1]->metadata()->has('description')); - static::assertSame('active', $definitions[2]->entry()->name()); + static::assertSame('active', $definitions[2]->reference()->name()); static::assertSame(BooleanType::class, $definitions[2]->type()::class); static::assertFalse($definitions[2]->isNullable()); - static::assertSame('tags', $definitions[4]->entry()->name()); + static::assertSame('tags', $definitions[4]->reference()->name()); static::assertSame(ListType::class, $definitions[4]->type()::class); static::assertTrue($definitions[4]->isNullable()); - static::assertSame('address', $definitions[5]->entry()->name()); + static::assertSame('address', $definitions[5]->reference()->name()); static::assertSame(StructureType::class, $definitions[5]->type()::class); static::assertFalse($definitions[5]->isNullable()); } @@ -114,9 +114,9 @@ public function test_dsl_functions_integration(): void static::assertCount(3, $convertedSchema->definitions()); $definitions = array_values($convertedSchema->definitions()); - static::assertSame('id', $definitions[0]->entry()->name()); - static::assertSame('name', $definitions[1]->entry()->name()); - static::assertSame('active', $definitions[2]->entry()->name()); + static::assertSame('id', $definitions[0]->reference()->name()); + static::assertSame('name', $definitions[1]->reference()->name()); + static::assertSame('active', $definitions[2]->reference()->name()); static::assertTrue($definitions[1]->metadata()->has('description')); static::assertSame('User name', $definitions[1]->metadata()->get('description')); diff --git a/src/bridge/openapi/specification/tests/Flow/Bridge/OpenAPI/Specification/Tests/Unit/OpenAPIToFlowConverterTest.php b/src/bridge/openapi/specification/tests/Flow/Bridge/OpenAPI/Specification/Tests/Unit/OpenAPIToFlowConverterTest.php index 6c9c93b75e..ef0eccf24b 100644 --- a/src/bridge/openapi/specification/tests/Flow/Bridge/OpenAPI/Specification/Tests/Unit/OpenAPIToFlowConverterTest.php +++ b/src/bridge/openapi/specification/tests/Flow/Bridge/OpenAPI/Specification/Tests/Unit/OpenAPIToFlowConverterTest.php @@ -40,15 +40,15 @@ public function test_bidirectional_conversion_consistency(): void static::assertCount(3, $convertedSchema->definitions()); $definitions = array_values($convertedSchema->definitions()); - static::assertSame('id', $definitions[0]->entry()->name()); + static::assertSame('id', $definitions[0]->reference()->name()); static::assertSame(IntegerType::class, $definitions[0]->type()::class); static::assertFalse($definitions[0]->isNullable()); - static::assertSame('name', $definitions[1]->entry()->name()); + static::assertSame('name', $definitions[1]->reference()->name()); static::assertSame(StringType::class, $definitions[1]->type()::class); static::assertTrue($definitions[1]->isNullable()); - static::assertSame('active', $definitions[2]->entry()->name()); + static::assertSame('active', $definitions[2]->reference()->name()); static::assertSame(BooleanType::class, $definitions[2]->type()::class); static::assertFalse($definitions[2]->isNullable()); } @@ -67,8 +67,8 @@ public function test_from_openapi_spec_dsl_function(): void static::assertCount(2, $schema->definitions()); $definitions = array_values($schema->definitions()); - static::assertSame('id', $definitions[0]->entry()->name()); - static::assertSame('name', $definitions[1]->entry()->name()); + static::assertSame('id', $definitions[0]->reference()->name()); + static::assertSame('name', $definitions[1]->reference()->name()); } public function test_from_openapi_throws_exception_for_invalid_property_spec(): void @@ -167,7 +167,7 @@ public function test_from_openapi_with_array_type(): void static::assertCount(1, $schema->definitions()); $definitions = array_values($schema->definitions()); $definition = $definitions[0]; - static::assertSame('tags', $definition->entry()->name()); + static::assertSame('tags', $definition->reference()->name()); static::assertSame(ListType::class, $definition->type()::class); static::assertFalse($definition->isNullable()); } @@ -189,11 +189,11 @@ public function test_from_openapi_with_basic_types(): void static::assertCount(4, $schema->definitions()); $definitions = array_values($schema->definitions()); - static::assertSame('id', $definitions[0]->entry()->name()); + static::assertSame('id', $definitions[0]->reference()->name()); static::assertSame(IntegerType::class, $definitions[0]->type()::class); static::assertFalse($definitions[0]->isNullable()); - static::assertSame('name', $definitions[1]->entry()->name()); + static::assertSame('name', $definitions[1]->reference()->name()); static::assertSame(StringType::class, $definitions[1]->type()::class); static::assertTrue($definitions[1]->isNullable()); } @@ -223,27 +223,27 @@ public function test_from_openapi_with_complex_schema(): void static::assertCount(5, $schema->definitions()); $definitions = array_values($schema->definitions()); - static::assertSame('id', $definitions[0]->entry()->name()); + static::assertSame('id', $definitions[0]->reference()->name()); static::assertSame(IntegerType::class, $definitions[0]->type()::class); static::assertFalse($definitions[0]->isNullable()); - static::assertSame('name', $definitions[1]->entry()->name()); + static::assertSame('name', $definitions[1]->reference()->name()); static::assertSame(StringType::class, $definitions[1]->type()::class); static::assertTrue($definitions[1]->isNullable()); static::assertTrue($definitions[1]->metadata()->has('description')); static::assertSame('User name', $definitions[1]->metadata()->get('description')); - static::assertSame('active', $definitions[2]->entry()->name()); + static::assertSame('active', $definitions[2]->reference()->name()); static::assertSame(BooleanType::class, $definitions[2]->type()::class); static::assertFalse($definitions[2]->isNullable()); static::assertTrue($definitions[2]->metadata()->has('example')); static::assertTrue($definitions[2]->metadata()->get('example')); - static::assertSame('tags', $definitions[3]->entry()->name()); + static::assertSame('tags', $definitions[3]->reference()->name()); static::assertSame(ListType::class, $definitions[3]->type()::class); static::assertTrue($definitions[3]->isNullable()); - static::assertSame('address', $definitions[4]->entry()->name()); + static::assertSame('address', $definitions[4]->reference()->name()); static::assertSame(StructureType::class, $definitions[4]->type()::class); static::assertFalse($definitions[4]->isNullable()); } @@ -281,7 +281,7 @@ public function test_from_openapi_with_metadata(): void static::assertCount(1, $schema->definitions()); $definitions = array_values($schema->definitions()); $definition = $definitions[0]; - static::assertSame('name', $definition->entry()->name()); + static::assertSame('name', $definition->reference()->name()); static::assertTrue($definition->metadata()->has('description')); static::assertSame('User name', $definition->metadata()->get('description')); static::assertTrue($definition->metadata()->has('example')); @@ -310,7 +310,7 @@ public function test_from_openapi_with_nested_structure(): void static::assertCount(1, $schema->definitions()); $definitions = array_values($schema->definitions()); $definition = $definitions[0]; - static::assertSame('address', $definition->entry()->name()); + static::assertSame('address', $definition->reference()->name()); static::assertSame(StructureType::class, $definition->type()::class); static::assertFalse($definition->isNullable()); } @@ -334,7 +334,7 @@ public function test_from_openapi_with_object_with_additional_properties(): void static::assertCount(1, $schema->definitions()); $definitions = array_values($schema->definitions()); $definition = $definitions[0]; - static::assertSame('metadata', $definition->entry()->name()); + static::assertSame('metadata', $definition->reference()->name()); static::assertSame(MapType::class, $definition->type()::class); static::assertFalse($definition->isNullable()); } diff --git a/src/cli/src/Flow/CLI/Command/Traits/JSONOptions.php b/src/cli/src/Flow/CLI/Command/Traits/JSONOptions.php index 2ce7e09dd2..3d237a0083 100644 --- a/src/cli/src/Flow/CLI/Command/Traits/JSONOptions.php +++ b/src/cli/src/Flow/CLI/Command/Traits/JSONOptions.php @@ -18,10 +18,10 @@ private function addJSONInputOptions(Command $command): void 'JSON Pointer to a subtree from which schema should be extracted', null, )->addOption( - 'input-json-pointer-entry-name', + 'input-json-pointer-column-name', null, InputOption::VALUE_NONE, - 'When set, JSON Pointer will be used as an entry name in the schema', + 'When set, JSON Pointer will be used as a column name in the schema', null, ); } diff --git a/src/cli/src/Flow/CLI/Factory/JsonExtractorFactory.php b/src/cli/src/Flow/CLI/Factory/JsonExtractorFactory.php index 19c865579c..b12119ec82 100644 --- a/src/cli/src/Flow/CLI/Factory/JsonExtractorFactory.php +++ b/src/cli/src/Flow/CLI/Factory/JsonExtractorFactory.php @@ -16,7 +16,7 @@ public function __construct( private Path $path, private string $pointerOption = 'input-json-pointer', - private string $pointerAsEntryNameOption = 'input-json-pointer-entry-name', + private string $pointerAsColumnNameOption = 'input-json-pointer-column-name', ) {} public function get(InputInterface $input): JsonExtractor @@ -26,7 +26,7 @@ public function get(InputInterface $input): JsonExtractor $pointer = option_string_nullable($this->pointerOption, $input); if ($pointer !== null) { - $extractor->withPointer($pointer, option_bool($this->pointerAsEntryNameOption, $input)); + $extractor->withPointer($pointer, option_bool($this->pointerAsColumnNameOption, $input)); } return $extractor; diff --git a/src/cli/src/Flow/CLI/Formatter/PipelineReportFormatter.php b/src/cli/src/Flow/CLI/Formatter/PipelineReportFormatter.php index 3dd059b031..710ad5faf3 100644 --- a/src/cli/src/Flow/CLI/Formatter/PipelineReportFormatter.php +++ b/src/cli/src/Flow/CLI/Formatter/PipelineReportFormatter.php @@ -33,7 +33,7 @@ public function format(): void foreach ($schema->definitions() as $definition) { $normalizedSchema[] = [ - 'name' => $definition->entry()->name(), + 'name' => $definition->reference()->name(), 'type' => $definition->type()->toString(), 'nullable' => $definition->isNullable() ? 'true' : 'false', 'metadata' => json_encode($definition->metadata(), JSON_PRETTY_PRINT), diff --git a/src/cli/tests/Flow/CLI/Tests/Integration/FileReadCommandTest.php b/src/cli/tests/Flow/CLI/Tests/Integration/FileReadCommandTest.php index 29580b1a31..10c5a25281 100644 --- a/src/cli/tests/Flow/CLI/Tests/Integration/FileReadCommandTest.php +++ b/src/cli/tests/Flow/CLI/Tests/Integration/FileReadCommandTest.php @@ -129,6 +129,30 @@ public function test_read_rows_json(): void OUTPUT, $tester->getDisplay()); } + public function test_read_rows_json_with_pointer_as_column_name(): void + { + $tester = new CommandTester(new FileReadCommand('read')); + + $tester->execute([ + 'input-file' => __DIR__ . '/Fixtures/pointer.json', + '--input-json-pointer' => '/orders', + '--input-json-pointer-column-name' => true, + ]); + + $tester->assertCommandIsSuccessful(); + + self::assertCommandOutputIdentical(<<<'OUTPUT' + +----------+ + | /orders | + +----------+ + | {"id":1} | + | {"id":2} | + +----------+ + 2 rows + + OUTPUT, $tester->getDisplay()); + } + public function test_read_rows_parquet(): void { $tester = new CommandTester(new FileReadCommand('read')); @@ -315,7 +339,7 @@ public function test_read_rows_with_output_columns_nonexistent_column(): void // selecting a column the schema does not declare is an error, not an empty column - there is // no type to give it and no reader could see a value that row storage does not carry $this->expectException(SchemaDefinitionNotFoundException::class); - $this->expectExceptionMessage('Schema definition for entry "nonexistent_column" not found'); + $this->expectExceptionMessage('Schema definition for column "nonexistent_column" not found'); $tester->execute([ 'input-file' => __DIR__ . '/Fixtures/orders.csv', diff --git a/src/cli/tests/Flow/CLI/Tests/Integration/Fixtures/pointer.json b/src/cli/tests/Flow/CLI/Tests/Integration/Fixtures/pointer.json new file mode 100644 index 0000000000..66ddb3b3f9 --- /dev/null +++ b/src/cli/tests/Flow/CLI/Tests/Integration/Fixtures/pointer.json @@ -0,0 +1 @@ +{"orders":[{"id":1},{"id":2}]} diff --git a/src/core/etl/src/Flow/ETL/Bucketing/KeyValues.php b/src/core/etl/src/Flow/ETL/Bucketing/KeyValues.php index 57f652eadb..4f22d5e828 100644 --- a/src/core/etl/src/Flow/ETL/Bucketing/KeyValues.php +++ b/src/core/etl/src/Flow/ETL/Bucketing/KeyValues.php @@ -40,7 +40,7 @@ public function of(Rows $rows): array $comparable = new ComparableValues(); foreach ($this->refs as $ref) { - $column = $rows->column($rows->schema()->get($ref)->entry()->name()); + $column = $rows->column($rows->schema()->get($ref)->reference()->name()); // @mago-ignore analysis:mixed-assignment foreach ($comparable->equality($column) as $i => $value) { diff --git a/src/core/etl/src/Flow/ETL/Cache/CacheIndex.php b/src/core/etl/src/Flow/ETL/Cache/CacheIndex.php index 7151eba4bc..2de9d5ad47 100644 --- a/src/core/etl/src/Flow/ETL/Cache/CacheIndex.php +++ b/src/core/etl/src/Flow/ETL/Cache/CacheIndex.php @@ -49,7 +49,7 @@ public static function fromRows(string $key, Rows $rows): self foreach ($keys as $i => $value) { if (!is_string($value)) { throw new InvalidArgumentException(sprintf( - 'CacheIndex expects rows with a string "key" entry, got: %s', + 'CacheIndex expects rows with a string "key" column, got: %s', get_debug_type($value), )); } @@ -59,7 +59,7 @@ public static function fromRows(string $key, Rows $rows): self if ($chunkRows !== null && !is_int($chunkRows)) { throw new InvalidArgumentException(sprintf( - 'CacheIndex expects rows with an integer "rows" entry, got: %s', + 'CacheIndex expects rows with an integer "rows" column, got: %s', get_debug_type($chunkRows), )); } diff --git a/src/core/etl/src/Flow/ETL/Column/Php/MapColumn.php b/src/core/etl/src/Flow/ETL/Column/Php/MapColumn.php index fdff9f9197..129f7713ea 100644 --- a/src/core/etl/src/Flow/ETL/Column/Php/MapColumn.php +++ b/src/core/etl/src/Flow/ETL/Column/Php/MapColumn.php @@ -145,7 +145,7 @@ public function take(array $indices): Column { $offsets = [0]; $nulls = []; - $entryIndices = []; + $pairIndices = []; foreach ($indices as $position => $index) { if (array_key_exists($index, $this->nulls)) { @@ -153,17 +153,17 @@ public function take(array $indices): Column } for ($j = $this->offsets[$index], $end = $this->offsets[$index + 1]; $j < $end; $j++) { - $entryIndices[] = $j; + $pairIndices[] = $j; } - $offsets[] = count($entryIndices); + $offsets[] = count($pairIndices); } return new self( $this->type, $offsets, - $this->keys->take($entryIndices), - $this->values->take($entryIndices), + $this->keys->take($pairIndices), + $this->values->take($pairIndices), $nulls, ); } diff --git a/src/core/etl/src/Flow/ETL/Column/PhpBackend.php b/src/core/etl/src/Flow/ETL/Column/PhpBackend.php index 1662a4f33c..4e524e90c0 100644 --- a/src/core/etl/src/Flow/ETL/Column/PhpBackend.php +++ b/src/core/etl/src/Flow/ETL/Column/PhpBackend.php @@ -61,7 +61,7 @@ public function decode(Definition $definition, array $buffers, int $count, int $ if ($cursor->remaining() !== 0) { throw new InvalidArgumentException(sprintf( 'Column "%s": %d buffers left after decoding', - $definition->entry()->name(), + $definition->reference()->name(), $cursor->remaining(), )); } diff --git a/src/core/etl/src/Flow/ETL/Config/Telemetry/SpanStack.php b/src/core/etl/src/Flow/ETL/Config/Telemetry/SpanStack.php index f2f3e4faed..631efd0306 100644 --- a/src/core/etl/src/Flow/ETL/Config/Telemetry/SpanStack.php +++ b/src/core/etl/src/Flow/ETL/Config/Telemetry/SpanStack.php @@ -20,9 +20,9 @@ final class SpanStack public function drain(Tracer $tracer, string $reason): void { - while (($entry = array_pop($this->spans)) !== null) { - $entry->scope->detach(); - $tracer->complete($entry->span->setStatus(SpanStatus::error($reason))); + while (($spanScope = array_pop($this->spans)) !== null) { + $spanScope->scope->detach(); + $tracer->complete($spanScope->span->setStatus(SpanStatus::error($reason))); } } diff --git a/src/core/etl/src/Flow/ETL/Config/Telemetry/TelemetryContext.php b/src/core/etl/src/Flow/ETL/Config/Telemetry/TelemetryContext.php index 915656131d..01fc4edcfd 100644 --- a/src/core/etl/src/Flow/ETL/Config/Telemetry/TelemetryContext.php +++ b/src/core/etl/src/Flow/ETL/Config/Telemetry/TelemetryContext.php @@ -278,14 +278,14 @@ public function limitReached(array $attributes = []): void */ public function loadingCompleted(Loader $loader, array $attributes = []): void { - $entry = $this->loadingSpans->pop(); + $spanScope = $this->loadingSpans->pop(); - if ($entry === null) { + if ($spanScope === null) { return; } - $entry->scope->detach(); - $this->tracer->complete($entry->span->setAttributes($attributes)); + $spanScope->scope->detach(); + $this->tracer->complete($spanScope->span->setAttributes($attributes)); } /** @@ -293,16 +293,16 @@ public function loadingCompleted(Loader $loader, array $attributes = []): void */ public function loadingFailed(Loader $loader, Throwable $exception, array $attributes = []): void { - $entry = $this->loadingSpans->pop(); + $spanScope = $this->loadingSpans->pop(); - if ($entry === null) { + if ($spanScope === null) { return; } - $entry->scope->detach(); + $spanScope->scope->detach(); $this->logger->error('Loading failed', ['exception' => $exception->getMessage(), 'loader' => $loader::class]); $this->tracer->complete( - $entry + $spanScope ->span ->setAttributes($attributes) ->setAttribute(SemConvAttributes::ERROR_TYPE, $exception::class) @@ -342,14 +342,14 @@ public function logger(): Logger */ public function transformationCompleted(Transformer $transformer, array $attributes = []): void { - $entry = $this->transformationSpans->pop(); + $spanScope = $this->transformationSpans->pop(); - if ($entry === null) { + if ($spanScope === null) { return; } - $entry->scope->detach(); - $this->tracer->complete($entry->span->setAttributes($attributes)); + $spanScope->scope->detach(); + $this->tracer->complete($spanScope->span->setAttributes($attributes)); } /** @@ -357,19 +357,19 @@ public function transformationCompleted(Transformer $transformer, array $attribu */ public function transformationFailed(Transformer $transformer, Throwable $exception, array $attributes = []): void { - $entry = $this->transformationSpans->pop(); + $spanScope = $this->transformationSpans->pop(); - if ($entry === null) { + if ($spanScope === null) { return; } - $entry->scope->detach(); + $spanScope->scope->detach(); $this->logger->error('Transformation failed', [ 'exception' => $exception->getMessage(), 'transformer' => $transformer::class, ]); $this->tracer->complete( - $entry + $spanScope ->span ->setAttributes($attributes) ->setAttribute(SemConvAttributes::ERROR_TYPE, $exception::class) diff --git a/src/core/etl/src/Flow/ETL/Constraint/UniqueConstraint.php b/src/core/etl/src/Flow/ETL/Constraint/UniqueConstraint.php index 2d5430ccf2..06cff24967 100644 --- a/src/core/etl/src/Flow/ETL/Constraint/UniqueConstraint.php +++ b/src/core/etl/src/Flow/ETL/Constraint/UniqueConstraint.php @@ -58,7 +58,7 @@ public function violation(Rows $rows, int $index): string $violations = []; foreach ($rows->schema()->keep(...$this->reference)->definitions() as $definition) { - $name = $definition->entry()->name(); + $name = $definition->reference()->name(); $violations[] = $name . '<' diff --git a/src/core/etl/src/Flow/ETL/DSL/functions.php b/src/core/etl/src/Flow/ETL/DSL/functions.php index 18326aeee3..04e16c7cce 100644 --- a/src/core/etl/src/Flow/ETL/DSL/functions.php +++ b/src/core/etl/src/Flow/ETL/DSL/functions.php @@ -206,13 +206,13 @@ use Flow\ETL\Transformation\MaskColumns; use Flow\ETL\Transformation\Select; use Flow\ETL\Transformer; -use Flow\ETL\Transformer\Rename\RenameCaseEntryStrategy; -use Flow\ETL\Transformer\Rename\RenameMapEntryStrategy; -use Flow\ETL\Transformer\Rename\RenameReplaceEntryStrategy; +use Flow\ETL\Transformer\Rename\RenameCaseColumnStrategy; +use Flow\ETL\Transformer\Rename\RenameMapColumnStrategy; +use Flow\ETL\Transformer\Rename\RenameReplaceColumnStrategy; use Flow\ETL\Window; use Flow\ETL\Window\FrameBound; use Flow\ETL\Window\FrameBoundType; -use Flow\ETL\WithEntry; +use Flow\ETL\WithColumn; use Flow\Filesystem\Filesystem; use Flow\Filesystem\Local\NativeLocalFilesystem; use Flow\Filesystem\Path; @@ -420,7 +420,7 @@ function from_data_frame(DataFrame $data_frame): DataFrameExtractor #[DocumentationDSL(module: Module::CORE, type: DSLType::EXTRACTOR)] function from_sequence_date_period( - string $entry_name, + string $column_name, DateTimeInterface $start, DateInterval $interval, DateTimeInterface $end, @@ -428,13 +428,13 @@ function from_sequence_date_period( ): SequenceExtractor { return new SequenceExtractor( new DatePeriodSequenceGenerator(new DatePeriod($start, $interval, $end, $options)), - $entry_name, + $column_name, ); } #[DocumentationDSL(module: Module::CORE, type: DSLType::EXTRACTOR)] function from_sequence_date_period_recurrences( - string $entry_name, + string $column_name, DateTimeInterface $start, DateInterval $interval, int $recurrences, @@ -442,18 +442,18 @@ function from_sequence_date_period_recurrences( ): SequenceExtractor { return new SequenceExtractor( new DatePeriodSequenceGenerator(new DatePeriod($start, $interval, $recurrences, $options)), - $entry_name, + $column_name, ); } #[DocumentationDSL(module: Module::CORE, type: DSLType::EXTRACTOR)] function from_sequence_number( - string $entry_name, + string $column_name, string|int|float $start, string|int|float $end, int|float $step = 1, ): SequenceExtractor { - return new SequenceExtractor(new NumberSequenceGenerator($start, $end, $step), $entry_name); + return new SequenceExtractor(new NumberSequenceGenerator($start, $end, $step), $column_name); } #[DocumentationDSL(module: Module::CORE, type: DSLType::LOADER)] @@ -541,9 +541,9 @@ function to_branch(ScalarFunction $condition, Loader|Sink $sink): Branched } #[DocumentationDSL(module: Module::CORE, type: DSLType::TRANSFORMER)] -function rename_style(StringStyles $style): RenameCaseEntryStrategy +function rename_style(StringStyles $style): RenameCaseColumnStrategy { - return new RenameCaseEntryStrategy($style); + return new RenameCaseColumnStrategy($style); } /** @@ -551,18 +551,18 @@ function rename_style(StringStyles $style): RenameCaseEntryStrategy * @param array|string $replace */ #[DocumentationDSL(module: Module::CORE, type: DSLType::TRANSFORMER)] -function rename_replace(string|array $search, string|array $replace): RenameReplaceEntryStrategy +function rename_replace(string|array $search, string|array $replace): RenameReplaceColumnStrategy { - return new RenameReplaceEntryStrategy($search, $replace); + return new RenameReplaceColumnStrategy($search, $replace); } /** * @param array $renames Map of old_name => new_name */ #[DocumentationDSL(module: Module::CORE, type: DSLType::TRANSFORMER)] -function rename_map(array $renames): RenameMapEntryStrategy +function rename_map(array $renames): RenameMapColumnStrategy { - return new RenameMapEntryStrategy($renames); + return new RenameMapColumnStrategy($renames); } #[DocumentationDSL(module: Module::CORE, type: DSLType::DATA_FRAME)] @@ -575,32 +575,22 @@ function rows(Schema $schema, Backend $backend = new AdaptiveBackend()): Rows * An alias for `ref`. */ #[DocumentationDSL(module: Module::CORE, type: DSLType::DATA_FRAME)] -function col(string $entry): UnresolvedReference +function col(string $column): UnresolvedReference { - return new UnresolvedReference($entry); -} - -/** - * An alias for `ref`. - */ -#[DocumentationDSL(module: Module::CORE, type: DSLType::SCALAR_FUNCTION)] -#[DocumentationExample(topic: 'columns', example: 'create')] -function entry(string $entry): UnresolvedReference -{ - return new UnresolvedReference($entry); + return new UnresolvedReference($column); } #[DocumentationDSL(module: Module::CORE, type: DSLType::SCALAR_FUNCTION)] #[DocumentationExample(topic: 'columns', example: 'create')] -function ref(string $entry): UnresolvedReference +function ref(string $column): UnresolvedReference { - return new UnresolvedReference($entry); + return new UnresolvedReference($column); } #[DocumentationDSL(module: Module::CORE, type: DSLType::SCALAR_FUNCTION)] -function structure_ref(string $entry): StructureFunctions +function structure_ref(string $column): StructureFunctions { - return ref($entry)->structure(); + return ref($column)->structure(); } /** @@ -616,27 +606,27 @@ function structure(array $elements): Structure } #[DocumentationDSL(module: Module::CORE, type: DSLType::SCALAR_FUNCTION)] -function list_ref(string $entry): ListFunctions +function list_ref(string $column): ListFunctions { - return ref($entry)->list(); + return ref($column)->list(); } #[DocumentationDSL(module: Module::CORE, type: DSLType::SCALAR_FUNCTION)] -function refs(string|Reference ...$entries): References +function refs(string|Reference ...$columns): References { - return new References(...$entries); + return new References(...$columns); } #[DocumentationDSL(module: Module::CORE, type: DSLType::TRANSFORMER)] -function select(string|Reference ...$entries): Select +function select(string|Reference ...$columns): Select { - return new Select(...$entries); + return new Select(...$columns); } #[DocumentationDSL(module: Module::CORE, type: DSLType::TRANSFORMER)] -function drop(string|Reference ...$entries): Drop +function drop(string|Reference ...$columns): Drop { - return new Drop(...$entries); + return new Drop(...$columns); } #[DocumentationDSL(module: Module::CORE, type: DSLType::TRANSFORMER)] @@ -934,7 +924,7 @@ function call(ScalarFunction $callable, Type $return_type, array $parameters = [ } /** - * Unpacks each element of an array into a new entry, using the array key as the entry name. + * Unpacks each element of an array into a new column, using the array key as the column name. * * Before: * +--+-------------------+ @@ -961,7 +951,7 @@ function array_unpack(ScalarFunction|array $array, Schema $schema): ArrayUnpack } /** - * Expands each value into entry, if there are more than one value, multiple rows will be created. + * Expands each value into a column, if there are more than one value, multiple rows will be created. * Array keys are ignored, only values are used to create new rows. * Nested in another function (structure(), concat(), ...) it still gives one row per element. Several * expands in one expression are zipped to the longest list; a shorter one gives null, so its element @@ -1742,9 +1732,9 @@ function discover_pivot_values(int $maxValues = 10_000): DiscoveredPivotValues } #[DocumentationDSL(module: Module::CORE, type: DSLType::LOADER)] -function partition_by(string|Reference $entry, string|Reference ...$entries): Partitioning +function partition_by(string|Reference $column, string|Reference ...$columns): Partitioning { - return Partitioning::by($entry, ...$entries); + return Partitioning::by($column, ...$columns); } /** @@ -2010,9 +2000,9 @@ function date_interval_to_microseconds(DateInterval $interval): int } #[DocumentationDSL(module: Module::CORE, type: DSLType::HELPER)] -function with_entry(string $name, ScalarFunction $function): WithEntry +function with_column(string $name, ScalarFunction $function): WithColumn { - return new WithEntry($name, $function); + return new WithColumn($name, $function); } #[DocumentationDSL(module: Module::CORE, type: DSLType::HELPER)] diff --git a/src/core/etl/src/Flow/ETL/DataFrame.php b/src/core/etl/src/Flow/ETL/DataFrame.php index f1156baadf..7477d4e405 100644 --- a/src/core/etl/src/Flow/ETL/DataFrame.php +++ b/src/core/etl/src/Flow/ETL/DataFrame.php @@ -31,7 +31,7 @@ use Flow\ETL\Schema\Definition; use Flow\ETL\Schema\SchemaFormatter; use Flow\ETL\Schema\Validator\StrictValidator; -use Flow\ETL\Transformer\Rename\RenameEntryStrategy; +use Flow\ETL\Transformer\Rename\RenameColumnStrategy; use Generator; use function array_unshift; @@ -173,7 +173,7 @@ public function collect(): self } /** - * This method allows to collect references to all entries used in this pipeline. + * This method allows to collect references to all columns used in this pipeline. * * ```php * (new Flow()) @@ -262,34 +262,34 @@ public function display( } /** - * Drop given entries. + * Drop given columns. * * @lazy */ - public function drop(string|Reference ...$entries): self + public function drop(string|Reference ...$columns): self { - $this->root = new Node\Drop($this->root, array_values($entries)); + $this->root = new Node\Drop($this->root, array_values($columns)); return $this; } /** - * @param Reference|string ...$entries + * @param Reference|string ...$columns * * @lazy * * @return $this */ - public function dropDuplicates(string|Reference ...$entries): self + public function dropDuplicates(string|Reference ...$columns): self { - $this->root = new Node\Distinct($this->root, array_values($entries)); + $this->root = new Node\Distinct($this->root, array_values($columns)); return $this; } - public function duplicateRow(mixed $condition, WithEntry ...$entries): self + public function duplicateRow(mixed $condition, WithColumn ...$columns): self { - $this->root = new Node\DuplicateRow($this->root, $condition, array_values($entries)); + $this->root = new Node\DuplicateRow($this->root, $condition, array_values($columns)); return $this; } @@ -425,15 +425,15 @@ public function getEachAsArray(): Generator /** * @lazy * - * @param GroupByReferences|Reference|string $entries a single column is grouped by on its own + * @param GroupByReferences|Reference|string $columns a single column is grouped by on its own * @param null|GroupByAlgorithmBuilder $algorithm null defers to configuration; a builder pins the * algorithm for this operation and skips any automatic choice */ public function groupBy( - array|Reference|string $entries, + array|Reference|string $columns, ?GroupByAlgorithmBuilder $algorithm = null, ): GroupedDataFrame { - $groupBy = new GroupBy(...is_array($entries) ? $entries : [$entries]); + $groupBy = new GroupBy(...is_array($columns) ? $columns : [$columns]); // the rows feeding the aggregate, without the frame's writes - what pivot discovery scans $input = new self($this->extractor, $this->context); $input->root = $this->root; @@ -599,11 +599,11 @@ public function onError(ErrorHandler $handler): self * Shuffles the stream so every row sharing the given columns arrives in one batch. It does not * write directories - that is declared on the loader, `to_csv(...)->partitionBy('region')`. */ - public function repartition(string|Reference $entry, string|Reference ...$entries): self + public function repartition(string|Reference $column, string|Reference ...$columns): self { - array_unshift($entries, $entry); + array_unshift($columns, $column); - $this->root = new Node\Repartition($this->root, References::init(...$entries)); + $this->root = new Node\Repartition($this->root, References::init(...$columns)); return $this; } @@ -656,7 +656,7 @@ public function rename(string $from, string $to): self return $this; } - public function renameEach(RenameEntryStrategy ...$strategies): self + public function renameEach(RenameColumnStrategy ...$strategies): self { $this->root = new Node\RenameEach($this->root, array_values($strategies)); @@ -723,11 +723,11 @@ public function schema(): Schema /** * @lazy - * Keep only given entries. + * Keep only given columns. */ - public function select(string|Reference ...$entries): self + public function select(string|Reference ...$columns): self { - $this->root = new Node\Select($this->root, array_values($entries)); + $this->root = new Node\Select($this->root, array_values($columns)); return $this; } @@ -735,13 +735,13 @@ public function select(string|Reference ...$entries): self /** * @lazy * - * @param Reference|SortReferences|string $entries a single column is sorted by on its own + * @param Reference|SortReferences|string $columns a single column is sorted by on its own * @param null|SortAlgorithmBuilder $algorithm null defers to configuration; a builder pins the algorithm * for this operation and skips any automatic choice */ - public function sortBy(array|Reference|string $entries, ?SortAlgorithmBuilder $algorithm = null): self + public function sortBy(array|Reference|string $columns, ?SortAlgorithmBuilder $algorithm = null): self { - $references = is_array($entries) ? $entries : [$entries]; + $references = is_array($columns) ? $columns : [$columns]; $this->root = new Node\Sort($this->root, refs(...$references), $algorithm); @@ -753,7 +753,7 @@ public function sortBy(array|Reference|string $entries, ?SortAlgorithmBuilder $a * * @lazy */ - public function transform(Transformer|Transformation|Transformations|WithEntry $transformer): self + public function transform(Transformer|Transformation|Transformations|WithColumn $transformer): self { return $this->with($transformer); } @@ -788,7 +788,7 @@ public function void(): self /** * @lazy */ - public function with(Transformer|Transformation|Transformations|WithEntry $transformer): self + public function with(Transformer|Transformation|Transformations|WithColumn $transformer): self { if ($transformer instanceof Transformer) { $this->root = new Node\Transform($this->root, $transformer); @@ -802,8 +802,8 @@ public function with(Transformer|Transformation|Transformations|WithEntry $trans return $this; } - if ($transformer instanceof WithEntry) { - $this->withEntry($transformer->name, $transformer->function); + if ($transformer instanceof WithColumn) { + $this->withColumn($transformer->name, $transformer->function); return $this; } @@ -811,18 +811,38 @@ public function with(Transformer|Transformation|Transformations|WithEntry $trans return $transformer->transform($this); } + /** + * @param Definition|string $column + * + * @lazy + */ + public function withColumn(string|Definition $column, ScalarFunction|WindowFunction $reference): self + { + $this->root = match (true) { + $reference instanceof WindowFunction => new Node\WindowColumn($this->root, $column, $reference), + (new ExpandingFunctions())->in($reference) !== [] => new Node\ExpandColumn( + $this->root, + $column, + $reference, + ), + default => new Node\WithColumn($this->root, $column, $reference), + }; + + return $this; + } + /** * @lazy * - * @param array|array $references + * @param array|array $references */ - public function withEntries(array $references): self + public function withColumns(array $references): self { - foreach ($references as $entryName => $ref) { - if ($ref instanceof WithEntry) { - $this->withEntry($ref->name, $ref->function); + foreach ($references as $name => $ref) { + if ($ref instanceof WithColumn) { + $this->withColumn($ref->name, $ref->function); } else { - $this->withEntry((string) $entryName, $ref); + $this->withColumn((string) $name, $ref); } } @@ -830,19 +850,27 @@ public function withEntries(array $references): self } /** + * @deprecated Use {@see DataFrame::withColumns()} instead. + * + * @lazy + * + * @param array|array $references + */ + public function withEntries(array $references): self + { + return $this->withColumns($references); + } + + /** + * @deprecated Use {@see DataFrame::withColumn()} instead. + * * @param Definition|string $entry * * @lazy */ public function withEntry(string|Definition $entry, ScalarFunction|WindowFunction $reference): self { - $this->root = match (true) { - $reference instanceof WindowFunction => new Node\WindowColumn($this->root, $entry, $reference), - (new ExpandingFunctions())->in($reference) !== [] => new Node\ExpandColumn($this->root, $entry, $reference), - default => new Node\WithColumn($this->root, $entry, $reference), - }; - - return $this; + return $this->withColumn($entry, $reference); } /** diff --git a/src/core/etl/src/Flow/ETL/Dataset/Statistics/Column.php b/src/core/etl/src/Flow/ETL/Dataset/Statistics/Column.php index 7811d15af3..36453334aa 100644 --- a/src/core/etl/src/Flow/ETL/Dataset/Statistics/Column.php +++ b/src/core/etl/src/Flow/ETL/Dataset/Statistics/Column.php @@ -64,7 +64,7 @@ final class Column */ public function __construct(Definition $definition, ColumnData $column) { - $this->reference = $definition->entry(); + $this->reference = $definition->reference(); $this->distinctCounter = new DistinctCounter(); $this->add($definition, $column); } @@ -76,7 +76,7 @@ public function __construct(Definition $definition, ColumnData $column) */ public function add(Definition $definition, ColumnData $column): void { - if ($this->reference->name() !== $definition->entry()->name()) { + if ($this->reference->name() !== $definition->reference()->name()) { return; } diff --git a/src/core/etl/src/Flow/ETL/Dataset/Statistics/Columns.php b/src/core/etl/src/Flow/ETL/Dataset/Statistics/Columns.php index 3434db6223..dc1f33d88f 100644 --- a/src/core/etl/src/Flow/ETL/Dataset/Statistics/Columns.php +++ b/src/core/etl/src/Flow/ETL/Dataset/Statistics/Columns.php @@ -27,7 +27,7 @@ public function __construct() {} */ public function add(Definition $definition, ColumnData $column): void { - $name = $definition->entry()->name(); + $name = $definition->reference()->name(); if (!array_key_exists($name, $this->columns)) { $this->columns[$name] = new Column($definition, $column); diff --git a/src/core/etl/src/Flow/ETL/Exception/ColumnMismatchException.php b/src/core/etl/src/Flow/ETL/Exception/ColumnMismatchException.php index b6c1988cbe..0b4fa11710 100644 --- a/src/core/etl/src/Flow/ETL/Exception/ColumnMismatchException.php +++ b/src/core/etl/src/Flow/ETL/Exception/ColumnMismatchException.php @@ -36,7 +36,7 @@ private function __construct( */ public static function missingColumn(Definition $definition): self { - return new self($definition->entry()->name(), ' declared by the schema is missing from the row'); + return new self($definition->reference()->name(), ' declared by the schema is missing from the row'); } public static function unexpectedColumn(string $column): self @@ -49,7 +49,7 @@ public static function unexpectedColumn(string $column): self */ public static function retype(Definition $definition, string $reason): self { - return new self($definition->entry()->name(), sprintf( + return new self($definition->reference()->name(), sprintf( ': cannot retype the column to %s, %s', $definition->type()->toString(), $reason, @@ -61,7 +61,7 @@ public static function retype(Definition $definition, string $reason): self */ public static function unsupportedType(Definition $definition, string $reason): self { - return new self($definition->entry()->name(), sprintf( + return new self($definition->reference()->name(), sprintf( ': %s cannot be a batch column, %s', $definition->type()->toString(), $reason, @@ -74,7 +74,7 @@ public static function unsupportedType(Definition $definition, string $reason): public static function untypedColumn(Definition $definition): self { return new self( - $definition->entry()->name(), + $definition->reference()->name(), ': mixed cannot be a batch column, an untyped function result exists only inside function evaluation', ); } @@ -85,7 +85,7 @@ public static function untypedColumn(Definition $definition): self public static function valueDoesNotMatch(Definition $definition, mixed $value, ?TypesException $reason = null): self { return new self( - $definition->entry()->name(), + $definition->reference()->name(), ( $value === null ? sprintf(': could not convert null to %s, column is not nullable', $definition->type()->toString()) diff --git a/src/core/etl/src/Flow/ETL/Exception/DuplicatedEntriesException.php b/src/core/etl/src/Flow/ETL/Exception/DuplicatedColumnsException.php similarity index 53% rename from src/core/etl/src/Flow/ETL/Exception/DuplicatedEntriesException.php rename to src/core/etl/src/Flow/ETL/Exception/DuplicatedColumnsException.php index 9ded47460c..df77196128 100644 --- a/src/core/etl/src/Flow/ETL/Exception/DuplicatedEntriesException.php +++ b/src/core/etl/src/Flow/ETL/Exception/DuplicatedColumnsException.php @@ -4,4 +4,4 @@ namespace Flow\ETL\Exception; -final class DuplicatedEntriesException extends InvalidArgumentException {} +final class DuplicatedColumnsException extends InvalidArgumentException {} diff --git a/src/core/etl/src/Flow/ETL/Exception/InvalidLogicException.php b/src/core/etl/src/Flow/ETL/Exception/InvalidLogicException.php index b463774c34..53f1a05bf9 100644 --- a/src/core/etl/src/Flow/ETL/Exception/InvalidLogicException.php +++ b/src/core/etl/src/Flow/ETL/Exception/InvalidLogicException.php @@ -86,7 +86,7 @@ private static function cyclicPlan(string $operation): self { return new self(sprintf( 'Cannot %s this plan: it reads from a DataFrame that reads back from it. A DataFrame is mutable, ' - . 'so join(), select() and withEntry() can add that edge after both frames exist. Break the cycle ' + . 'so join(), select() and withColumn() can add that edge after both frames exist. Break the cycle ' . 'by reading the nested frame from its own source.', $operation, )); diff --git a/src/core/etl/src/Flow/ETL/Exception/SchemaDefinitionNotFoundException.php b/src/core/etl/src/Flow/ETL/Exception/SchemaDefinitionNotFoundException.php index 566c8145a8..79e9e40ed8 100644 --- a/src/core/etl/src/Flow/ETL/Exception/SchemaDefinitionNotFoundException.php +++ b/src/core/etl/src/Flow/ETL/Exception/SchemaDefinitionNotFoundException.php @@ -17,23 +17,23 @@ final class SchemaDefinitionNotFoundException extends InvalidArgumentException * @param list $suggestions */ public function __construct( - private readonly string $entry, + private readonly string $column, private readonly array $suggestions = [], ) { parent::__construct( count($this->suggestions) > 0 ? sprintf( - 'Schema definition for entry "%s" not found. Did you mean one of: [%s]?', - $entry, + 'Schema definition for column "%s" not found. Did you mean one of: [%s]?', + $column, implode(', ', $this->suggestions), ) - : sprintf('Schema definition for entry "%s" not found.', $entry), + : sprintf('Schema definition for column "%s" not found.', $column), ); } - public static function withAvailable(string $entry, string ...$available): self + public static function withAvailable(string $column, string ...$available): self { - return new self($entry, (new SimilarNames())->closestTo($entry, array_values($available))); + return new self($column, (new SimilarNames())->closestTo($column, array_values($available))); } /** @@ -47,8 +47,8 @@ public function suggestions(): array return $this->suggestions; } - public function entry(): string + public function column(): string { - return $this->entry; + return $this->column; } } diff --git a/src/core/etl/src/Flow/ETL/Extractor/DataFrameExtractor.php b/src/core/etl/src/Flow/ETL/Extractor/DataFrameExtractor.php index febb950e9c..9357406e31 100644 --- a/src/core/etl/src/Flow/ETL/Extractor/DataFrameExtractor.php +++ b/src/core/etl/src/Flow/ETL/Extractor/DataFrameExtractor.php @@ -50,11 +50,11 @@ public function extract(FlowContext $context, ?int $limit = null): Generator $columns = []; foreach ($this->schema->definitions() as $name => $definition) { - $own = $rows->schema()->findDefinition($definition->entry()->name()); + $own = $rows->schema()->findDefinition($definition->reference()->name()); $columns[$name] = $own === null ? $retyping->absent($definition, $rows->count(), $backend) - : $retyping->cast($rows->column($definition->entry()->name()), $own, $definition, $backend); + : $retyping->cast($rows->column($definition->reference()->name()), $own, $definition, $backend); } $rows = Rows::fromColumns($this->schema, $columns, $rows->count()); diff --git a/src/core/etl/src/Flow/ETL/Extractor/SequenceExtractor.php b/src/core/etl/src/Flow/ETL/Extractor/SequenceExtractor.php index 255e5c2031..6e3dd42d9d 100644 --- a/src/core/etl/src/Flow/ETL/Extractor/SequenceExtractor.php +++ b/src/core/etl/src/Flow/ETL/Extractor/SequenceExtractor.php @@ -34,7 +34,7 @@ final class SequenceExtractor implements BatchableExtractor, Extractor, InfersSc public function __construct( private readonly SequenceGenerator $generator, - private readonly string $entryName = 'entry', + private readonly string $columnName, ) { $this->inference = new SchemaInference(); } @@ -56,7 +56,7 @@ public function extract(FlowContext $context, ?int $limit = null): Generator /** @var mixed $item */ foreach ($this->generator->generate() as $item) { - $buffer[] = [$this->entryName => $item]; + $buffer[] = [$this->columnName => $item]; if (count($buffer) < $batchSize) { continue; @@ -109,14 +109,14 @@ private function describe(): Schema $items = function (): Generator { /** @var mixed $item */ foreach ($this->generator->generate() as $item) { - yield [$this->entryName => $item]; + yield [$this->columnName => $item]; } }; // No spill: generate() returns a fresh Generator per call, so extract() gets its own pass and // spilling a generated sequence would write gigabytes to learn "integer". // - // No seeded name either: PHP re-keys a canonical-integer entry name to an int inside $items, so + // No seeded name either: PHP re-keys a canonical-integer column name to an int inside $items, so // InMemoryRows renames it through ColumnName and a raw seed would describe a second, empty column. return $this->derivedSchema = (new SchemaInferrer($this->inference, new InstanceOfTypeNarrower()))->infer( [], diff --git a/src/core/etl/src/Flow/ETL/Formatter/ASCII/Body.php b/src/core/etl/src/Flow/ETL/Formatter/ASCII/Body.php index 03be77bc0f..0f2e2dc474 100644 --- a/src/core/etl/src/Flow/ETL/Formatter/ASCII/Body.php +++ b/src/core/etl/src/Flow/ETL/Formatter/ASCII/Body.php @@ -22,9 +22,9 @@ public function schema(): Schema /** * @return int<0, max> */ - public function maximumLength(string $entry, int|bool $truncate = 20): int + public function maximumLength(string $column, int|bool $truncate = 20): int { - $definition = $this->schema()->findDefinition($entry); + $definition = $this->schema()->findDefinition($column); if ($definition === null) { return 0; @@ -33,7 +33,7 @@ public function maximumLength(string $entry, int|bool $truncate = 20): int $max = 0; // @mago-ignore analysis:mixed-assignment - foreach ($this->rows->column($definition->entry()->name())->values() as $cell) { + foreach ($this->rows->column($definition->reference()->name())->values() as $cell) { $value = new ASCIIValue($definition->type(), $cell); if ($value->length($truncate) >= $max) { @@ -50,10 +50,10 @@ public function count(): int } /** - * @throws InvalidArgumentException the batch has no $entry column + * @throws InvalidArgumentException the batch has no $column column */ - public function value(string $entry, int $index): mixed + public function value(string $column, int $index): mixed { - return $this->rows->column($entry)->value($index); + return $this->rows->column($column)->value($index); } } diff --git a/src/core/etl/src/Flow/ETL/Function/ArrayUnpack.php b/src/core/etl/src/Flow/ETL/Function/ArrayUnpack.php index a7d0f21b42..d31029de55 100644 --- a/src/core/etl/src/Flow/ETL/Function/ArrayUnpack.php +++ b/src/core/etl/src/Flow/ETL/Function/ArrayUnpack.php @@ -74,7 +74,7 @@ public function returns(): Type // every declared column is nullable - a payload that omits a key still has to produce it foreach ($this->schema->definitions() as $definition) { - $name = $definition->entry()->name(); + $name = $definition->reference()->name(); $elements[$name] = structure_element($name, type_optional($definition->type())); } diff --git a/src/core/etl/src/Flow/ETL/Function/Evaluation/ResultColumn.php b/src/core/etl/src/Flow/ETL/Function/Evaluation/ResultColumn.php index 456e4ee78e..b1578d44d9 100644 --- a/src/core/etl/src/Flow/ETL/Function/Evaluation/ResultColumn.php +++ b/src/core/etl/src/Flow/ETL/Function/Evaluation/ResultColumn.php @@ -64,7 +64,7 @@ public function of(ScalarFunction $function, array $values): Column return new ValueColumn($values); } - // nullable on purpose: only the step that stores the column (withEntry/filter gate) enforces NOT NULL, as today + // nullable on purpose: only the step that stores the column (withColumn/filter gate) enforces NOT NULL, as today return $this->typed($returns instanceof NullType ? $returns : type_optional(type_bare($returns)), $values); } diff --git a/src/core/etl/src/Flow/ETL/Function/ExpandingFunctions.php b/src/core/etl/src/Flow/ETL/Function/ExpandingFunctions.php index d2b16dad0e..4c5f3380a9 100644 --- a/src/core/etl/src/Flow/ETL/Function/ExpandingFunctions.php +++ b/src/core/etl/src/Flow/ETL/Function/ExpandingFunctions.php @@ -31,7 +31,7 @@ public function refuse(FunctionTree $tree, string $method): void if ($this->in($tree) !== []) { throw InvalidArgumentException::because( '%s() cannot contain array_expand(), it turns one row into many rows. ' - . 'Expand with withEntry() first, then use the new column.', + . 'Expand with withColumn() first, then use the new column.', $method, ); } @@ -46,7 +46,7 @@ public function refuseNested(FunctionTree $tree): void foreach ($expand->children() as $child) { if ($this->in($child) !== []) { throw InvalidArgumentException::because( - 'array_expand() cannot contain another array_expand(). Expand one level per withEntry().', + 'array_expand() cannot contain another array_expand(). Expand one level per withColumn().', ); } } diff --git a/src/core/etl/src/Flow/ETL/Function/ScalarFunctionChain.php b/src/core/etl/src/Flow/ETL/Function/ScalarFunctionChain.php index 03c0d25f2e..b99d2d4e37 100644 --- a/src/core/etl/src/Flow/ETL/Function/ScalarFunctionChain.php +++ b/src/core/etl/src/Flow/ETL/Function/ScalarFunctionChain.php @@ -319,7 +319,7 @@ public function exists(): Exists } /** - * Expands each value into entry, if there are more than one value, multiple rows will be created. + * Expands each value into a column, if there are more than one value, multiple rows will be created. * Array keys are ignored, only values are used to create new rows. * Nested in another function (structure(), concat(), ...) it still gives one row per element. Several * expands in one expression are zipped to the longest list; a shorter one gives null, so its element @@ -536,10 +536,10 @@ public function numberFormat( } /** - * Execute a scalar function on each element of an array/list/map/structure entry. + * Execute a scalar function on each element of an array/list/map/structure column. * In order to use this function, you need to provide a reference to the "element" that will be used in the function. * - * Example: $df->withEntry('array', ref('array')->onEach(ref('element')->cast(type_string()))) + * Example: $df->withColumn('array', ref('array')->onEach(ref('element')->cast(type_string()))) */ public function onEach(ScalarFunction $function, bool $preserveKeys = true): OnEach { @@ -825,7 +825,7 @@ public function unicodeLength(): UnicodeLength } /** - * Unpacks each element of an array into a new entry, using the array key as the entry name. + * Unpacks each element of an array into a new column, using the array key as the column name. * * Before: * +--+-------------------+ diff --git a/src/core/etl/src/Flow/ETL/GroupBy.php b/src/core/etl/src/Flow/ETL/GroupBy.php index 8644710e45..aa864665d8 100644 --- a/src/core/etl/src/Flow/ETL/GroupBy.php +++ b/src/core/etl/src/Flow/ETL/GroupBy.php @@ -31,9 +31,9 @@ final class GroupBy private readonly References $refs; - public function __construct(string|Reference ...$entries) + public function __construct(string|Reference ...$columns) { - $this->refs = References::init(...array_unique($entries)); + $this->refs = References::init(...array_unique($columns)); $this->aggregations = new Aggregators(); } diff --git a/src/core/etl/src/Flow/ETL/GroupBy/AggregatedGroups.php b/src/core/etl/src/Flow/ETL/GroupBy/AggregatedGroups.php index 92e2f5284e..98852542b3 100644 --- a/src/core/etl/src/Flow/ETL/GroupBy/AggregatedGroups.php +++ b/src/core/etl/src/Flow/ETL/GroupBy/AggregatedGroups.php @@ -92,7 +92,7 @@ public function rows(array $groups, FlowContext $context): Rows foreach ($groups as $group) { // @mago-ignore analysis:mixed-assignment foreach ($group->key as $name => $value) { - $values[$output->get($name)->entry()->name()][] = $value; + $values[$output->get($name)->reference()->name()][] = $value; } foreach ($group->aggregators as $aggregator) { diff --git a/src/core/etl/src/Flow/ETL/GroupBy/GroupBySteps.php b/src/core/etl/src/Flow/ETL/GroupBy/GroupBySteps.php index fdeb7a7421..24d584e2ee 100644 --- a/src/core/etl/src/Flow/ETL/GroupBy/GroupBySteps.php +++ b/src/core/etl/src/Flow/ETL/GroupBy/GroupBySteps.php @@ -15,7 +15,7 @@ use Flow\ETL\Processor\GroupByAggregationProcessor; use Flow\ETL\Processor\PivotProcessor; use Flow\ETL\Transformer; -use Flow\ETL\Transformer\PruneEntriesTransformer; +use Flow\ETL\Transformer\PruneColumnsTransformer; use function array_values; @@ -45,7 +45,7 @@ public static function of(GroupBy $groupBy, Config $config, ?GroupByAlgorithmBui $pruned[$ref->base()] ??= $ref->base(); } - $steps[] = new PruneEntriesTransformer(...array_values($pruned)); + $steps[] = new PruneColumnsTransformer(...array_values($pruned)); } $buckets = new Buckets(SpillingBuckets::around( diff --git a/src/core/etl/src/Flow/ETL/Join/Comparison/All.php b/src/core/etl/src/Flow/ETL/Join/Comparison/All.php index 8f5fa34f09..5d258b67dd 100644 --- a/src/core/etl/src/Flow/ETL/Join/Comparison/All.php +++ b/src/core/etl/src/Flow/ETL/Join/Comparison/All.php @@ -57,13 +57,13 @@ public function comparisons(): array */ public function left(): array { - $entries = []; + $columns = []; foreach ($this->comparisons as $comparison) { - $entries[] = $comparison->left(); + $columns[] = $comparison->left(); } - return array_unique(array_merge(...$entries)); + return array_unique(array_merge(...$columns)); } /** @@ -71,12 +71,12 @@ public function left(): array */ public function right(): array { - $entries = []; + $columns = []; foreach ($this->comparisons as $comparison) { - $entries[] = $comparison->right(); + $columns[] = $comparison->right(); } - return array_unique(array_merge(...$entries)); + return array_unique(array_merge(...$columns)); } } diff --git a/src/core/etl/src/Flow/ETL/Join/Comparison/Any.php b/src/core/etl/src/Flow/ETL/Join/Comparison/Any.php index 2d43278819..c1e14039a6 100644 --- a/src/core/etl/src/Flow/ETL/Join/Comparison/Any.php +++ b/src/core/etl/src/Flow/ETL/Join/Comparison/Any.php @@ -57,13 +57,13 @@ public function comparisons(): array */ public function left(): array { - $entries = []; + $columns = []; foreach ($this->comparisons as $comparison) { - $entries[] = $comparison->left(); + $columns[] = $comparison->left(); } - return array_unique(array_merge(...$entries)); + return array_unique(array_merge(...$columns)); } /** @@ -71,12 +71,12 @@ public function left(): array */ public function right(): array { - $entries = []; + $columns = []; foreach ($this->comparisons as $comparison) { - $entries[] = $comparison->right(); + $columns[] = $comparison->right(); } - return array_unique(array_merge(...$entries)); + return array_unique(array_merge(...$columns)); } } diff --git a/src/core/etl/src/Flow/ETL/Join/Comparison/Equal.php b/src/core/etl/src/Flow/ETL/Join/Comparison/Equal.php index fdc56e3425..de8e55acf5 100644 --- a/src/core/etl/src/Flow/ETL/Join/Comparison/Equal.php +++ b/src/core/etl/src/Flow/ETL/Join/Comparison/Equal.php @@ -19,8 +19,8 @@ final readonly class Equal implements Comparison { public function __construct( - private string|Reference $entryLeft, - private string|Reference $entryRight, + private string|Reference $leftReference, + private string|Reference $rightReference, ) {} public function compare(Rows $left, Rows $right): array @@ -54,7 +54,9 @@ public function compare(Rows $left, Rows $right): array */ public function left(): array { - return [is_string($this->entryLeft) ? UnresolvedReference::init($this->entryLeft) : $this->entryLeft]; + return [ + is_string($this->leftReference) ? UnresolvedReference::init($this->leftReference) : $this->leftReference, + ]; } /** @@ -62,6 +64,8 @@ public function left(): array */ public function right(): array { - return [is_string($this->entryRight) ? UnresolvedReference::init($this->entryRight) : $this->entryRight]; + return [ + is_string($this->rightReference) ? UnresolvedReference::init($this->rightReference) : $this->rightReference, + ]; } } diff --git a/src/core/etl/src/Flow/ETL/Join/Comparison/Identical.php b/src/core/etl/src/Flow/ETL/Join/Comparison/Identical.php index 576c0e650f..826e9bdc2f 100644 --- a/src/core/etl/src/Flow/ETL/Join/Comparison/Identical.php +++ b/src/core/etl/src/Flow/ETL/Join/Comparison/Identical.php @@ -16,8 +16,8 @@ final readonly class Identical implements Comparison { public function __construct( - private string|Reference $entryLeft, - private string|Reference $entryRight, + private string|Reference $leftReference, + private string|Reference $rightReference, ) {} public function compare(Rows $left, Rows $right): array @@ -43,7 +43,9 @@ public function compare(Rows $left, Rows $right): array */ public function left(): array { - return [is_string($this->entryLeft) ? UnresolvedReference::init($this->entryLeft) : $this->entryLeft]; + return [ + is_string($this->leftReference) ? UnresolvedReference::init($this->leftReference) : $this->leftReference, + ]; } /** @@ -51,6 +53,8 @@ public function left(): array */ public function right(): array { - return [is_string($this->entryRight) ? UnresolvedReference::init($this->entryRight) : $this->entryRight]; + return [ + is_string($this->rightReference) ? UnresolvedReference::init($this->rightReference) : $this->rightReference, + ]; } } diff --git a/src/core/etl/src/Flow/ETL/Join/Expression.php b/src/core/etl/src/Flow/ETL/Join/Expression.php index 50d5106543..915d22bd88 100644 --- a/src/core/etl/src/Flow/ETL/Join/Expression.php +++ b/src/core/etl/src/Flow/ETL/Join/Expression.php @@ -40,7 +40,7 @@ public static function on(array|Comparison $comparison, string $joinPrefix = '') if (!is_string($left)) { throw new RuntimeException( - 'Expected left entry name to be string, got ' . gettype($left) . ". Example: ['id' => 'id']", + 'Expected left column name to be string, got ' . gettype($left) . ". Example: ['id' => 'id']", ); } @@ -48,7 +48,7 @@ public static function on(array|Comparison $comparison, string $joinPrefix = '') if (!is_string($right)) { // @mago-ignore analysis:no-value throw new RuntimeException( - 'Expected right entry name to be string, got ' . gettype($right) . ". Example: ['id' => 'id']", + 'Expected right column name to be string, got ' . gettype($right) . ". Example: ['id' => 'id']", ); } diff --git a/src/core/etl/src/Flow/ETL/Join/HashJoin/Joiner.php b/src/core/etl/src/Flow/ETL/Join/HashJoin/Joiner.php index 854069e729..1d3c70ff9c 100644 --- a/src/core/etl/src/Flow/ETL/Join/HashJoin/Joiner.php +++ b/src/core/etl/src/Flow/ETL/Join/HashJoin/Joiner.php @@ -9,7 +9,7 @@ use Flow\ETL\Bucketing\NativeHasher; use Flow\ETL\Bucketing\SingleBucketHasher; use Flow\ETL\Column\Backend; -use Flow\ETL\Exception\DuplicatedEntriesException; +use Flow\ETL\Exception\DuplicatedColumnsException; use Flow\ETL\Exception\InvalidArgumentException; use Flow\ETL\Join\Expression; use Flow\ETL\Join\Join; @@ -72,7 +72,7 @@ public function __construct( /** * @param bool $buildLeft - build the hash table from the left side and stream the right one, memory is then bounded by the left side * - * @throws DuplicatedEntriesException + * @throws DuplicatedColumnsException * * @return Generator */ @@ -328,14 +328,14 @@ private function meet(Rows $left, array $leftIndices, Rows $right, array $rightI } /** - * @throws DuplicatedEntriesException + * @throws DuplicatedColumnsException */ private function merge(Rows $left, Rows $right): Rows { try { return $this->merger->merge($left, $right); - } catch (DuplicatedEntriesException $e) { - throw new DuplicatedEntriesException( + } catch (DuplicatedColumnsException $e) { + throw new DuplicatedColumnsException( $e->getMessage() . ' try to use a different join prefix than: "' . $this->expression->prefix() . '"', (int) $e->getCode(), $e, diff --git a/src/core/etl/src/Flow/ETL/Join/HashJoin/RowMerger.php b/src/core/etl/src/Flow/ETL/Join/HashJoin/RowMerger.php index f4a0307480..ce2b5bacb1 100644 --- a/src/core/etl/src/Flow/ETL/Join/HashJoin/RowMerger.php +++ b/src/core/etl/src/Flow/ETL/Join/HashJoin/RowMerger.php @@ -4,7 +4,7 @@ namespace Flow\ETL\Join\HashJoin; -use Flow\ETL\Exception\DuplicatedEntriesException; +use Flow\ETL\Exception\DuplicatedColumnsException; use Flow\ETL\Rows; use Flow\ETL\Schema; @@ -31,8 +31,8 @@ final class RowMerger private array $plans = []; /** - * @param array $dropLeft - left side entries skipped in the output (duplicated join columns) - * @param array $dropRight - right side entries skipped in the output (duplicated join columns) + * @param array $dropLeft - left side columns skipped in the output (duplicated join columns) + * @param array $dropRight - right side columns skipped in the output (duplicated join columns) */ public function __construct( private readonly string $prefix = '', @@ -58,7 +58,7 @@ public function __construct( /** * Pair-aligned: row i of the result is left row i merged with right row i. * - * @throws DuplicatedEntriesException + * @throws DuplicatedColumnsException */ public function merge(Rows $left, Rows $right): Rows { @@ -102,7 +102,7 @@ public function merge(Rows $left, Rows $right): Rows * @param list $leftNames * @param list $rightNames * - * @throws DuplicatedEntriesException + * @throws DuplicatedColumnsException * * @return array{array, array, array} */ @@ -148,8 +148,8 @@ private function plan(array $leftNames, array $rightNames): array } if ($collision) { - throw new DuplicatedEntriesException(sprintf( - 'Merged entries names must be unique, given: [%s] + [%s]', + throw new DuplicatedColumnsException(sprintf( + 'Merged column names must be unique, given: [%s] + [%s]', implode(', ', array_keys($keepLeft)), implode(', ', $rightOutputNames), )); diff --git a/src/core/etl/src/Flow/ETL/Loader/Partitioning.php b/src/core/etl/src/Flow/ETL/Loader/Partitioning.php index a530f54c81..5f207b6e77 100644 --- a/src/core/etl/src/Flow/ETL/Loader/Partitioning.php +++ b/src/core/etl/src/Flow/ETL/Loader/Partitioning.php @@ -15,9 +15,9 @@ private function __construct( public bool $writeColumns = false, ) {} - public static function by(string|Reference $entry, string|Reference ...$entries): self + public static function by(string|Reference $column, string|Reference ...$columns): self { - return new self(References::init($entry, ...$entries)); + return new self(References::init($column, ...$columns)); } public static function none(): self diff --git a/src/core/etl/src/Flow/ETL/Memory/ArrayMemory.php b/src/core/etl/src/Flow/ETL/Memory/ArrayMemory.php index 5370f5375b..3ec6d68c94 100644 --- a/src/core/etl/src/Flow/ETL/Memory/ArrayMemory.php +++ b/src/core/etl/src/Flow/ETL/Memory/ArrayMemory.php @@ -71,8 +71,8 @@ public function flatValues(): array { $data = []; - foreach ($this->memory as $entry) { - $data[] = array_values($entry); + foreach ($this->memory as $row) { + $data[] = array_values($row); } return array_merge(...$data); @@ -87,8 +87,8 @@ public function map(callable $callback): array { $data = []; - foreach ($this->memory as $entry) { - $data[] = $callback($entry); + foreach ($this->memory as $row) { + $data[] = $callback($row); } return $data; @@ -101,8 +101,8 @@ public function save(array $data): void { $this->assertMemoryStructure($data); - foreach ($data as $entry) { - $this->memory[] = $entry; + foreach ($data as $row) { + $this->memory[] = $row; } } @@ -114,8 +114,8 @@ public function save(array $data): void private function assertMemoryStructure(array $memory): void { // @mago-ignore analysis:mixed-assignment - foreach ($memory as $entry) { - if (!is_array($entry)) { + foreach ($memory as $row) { + if (!is_array($row)) { throw new InvalidArgumentException('Memory expects nested array data structure: array>'); } } diff --git a/src/core/etl/src/Flow/ETL/Optimizer/ProjectionWalk.php b/src/core/etl/src/Flow/ETL/Optimizer/ProjectionWalk.php index a30634dc8e..599d575dcf 100644 --- a/src/core/etl/src/Flow/ETL/Optimizer/ProjectionWalk.php +++ b/src/core/etl/src/Flow/ETL/Optimizer/ProjectionWalk.php @@ -20,8 +20,8 @@ public function below(Node $node, RequiredColumns $above): RequiredColumns $refs = new ReferencedColumns(); return match (true) { - $node instanceof Node\Select => RequiredColumns::only(...References::init(...$node->entries)->names()), - $node instanceof Node\Drop => $above->without(...References::init(...$node->entries)->names()), + $node instanceof Node\Select => RequiredColumns::only(...References::init(...$node->columns)->names()), + $node instanceof Node\Drop => $above->without(...References::init(...$node->columns)->names()), // an unpack writes "name.*", known only once bound: keep the demand, add what it reads ($node instanceof Node\WithColumn || $node instanceof Node\ExpandColumn) && $node->function instanceof UnpackResults diff --git a/src/core/etl/src/Flow/ETL/Plan/Explain/Details.php b/src/core/etl/src/Flow/ETL/Plan/Explain/Details.php index 6bceecb4d3..3ec85032b9 100644 --- a/src/core/etl/src/Flow/ETL/Plan/Explain/Details.php +++ b/src/core/etl/src/Flow/ETL/Plan/Explain/Details.php @@ -88,10 +88,10 @@ public function labelled(Node $node): array $node instanceof Offset => ['Skip: ' . $node->offset], $node instanceof TopN => ['Top: ' . $node->limit], $node instanceof Rename => [sprintf('Rename: %s → %s', $node->from, $node->to)], - $node instanceof Select => ['Keeps only: ' . $this->columns($node->entries)], - $node instanceof Drop => ['Drops: ' . $this->columns($node->entries)], + $node instanceof Select => ['Keeps only: ' . $this->columns($node->columns)], + $node instanceof Drop => ['Drops: ' . $this->columns($node->columns)], $node instanceof Distinct => [ - 'Distinct on: ' . ($node->entries === [] ? 'every column' : $this->columns($node->entries)), + 'Distinct on: ' . ($node->columns === [] ? 'every column' : $this->columns($node->columns)), ], $node instanceof Batch => ['Batch size: ' . $node->size], $node instanceof Repartition => ['Partition by: ' . implode(', ', $node->by->names())], diff --git a/src/core/etl/src/Flow/ETL/Plan/Explain/StepDetails.php b/src/core/etl/src/Flow/ETL/Plan/Explain/StepDetails.php index 9fa1e97900..183258f849 100644 --- a/src/core/etl/src/Flow/ETL/Plan/Explain/StepDetails.php +++ b/src/core/etl/src/Flow/ETL/Plan/Explain/StepDetails.php @@ -169,7 +169,8 @@ public function pivot(PivotProcessor $pivot): array public function window(WindowProcessor $window): array { return [ - 'Column: ' . ($window->entry instanceof Definition ? $window->entry->entry()->name() : $window->entry), + 'Column: ' + . ($window->column instanceof Definition ? $window->column->reference()->name() : $window->column), 'Function: ' . $this->details->name($window->function), ...($window->bound === null ? [] : ['Frame: bound']), ]; diff --git a/src/core/etl/src/Flow/ETL/Plan/Node/Distinct.php b/src/core/etl/src/Flow/ETL/Plan/Node/Distinct.php index 390972f3db..ccd8b2544f 100644 --- a/src/core/etl/src/Flow/ETL/Plan/Node/Distinct.php +++ b/src/core/etl/src/Flow/ETL/Plan/Node/Distinct.php @@ -18,16 +18,16 @@ final readonly class Distinct implements Node { /** - * @param list $entries + * @param list $columns * * @throws InvalidArgumentException */ public function __construct( private Node $input, - public array $entries, + public array $columns, ) { - if ($this->entries === []) { - throw new InvalidArgumentException('DropDuplicatesTransformer requires at least one entry'); + if ($this->columns === []) { + throw new InvalidArgumentException('DropDuplicatesTransformer requires at least one column'); } } @@ -41,7 +41,7 @@ public function children(): array public function withChildren(array $children): self { - return $children[0] === $this->input ? $this : new self($children[0], $this->entries); + return $children[0] === $this->input ? $this : new self($children[0], $this->columns); } public function rowCount(): RowCount diff --git a/src/core/etl/src/Flow/ETL/Plan/Node/Drop.php b/src/core/etl/src/Flow/ETL/Plan/Node/Drop.php index e35cac6df4..c12760c93a 100644 --- a/src/core/etl/src/Flow/ETL/Plan/Node/Drop.php +++ b/src/core/etl/src/Flow/ETL/Plan/Node/Drop.php @@ -15,11 +15,11 @@ final readonly class Drop implements Node { /** - * @param list $entries + * @param list $columns */ public function __construct( private Node $input, - public array $entries, + public array $columns, ) {} /** @@ -32,7 +32,7 @@ public function children(): array public function withChildren(array $children): self { - return $children[0] === $this->input ? $this : new self($children[0], $this->entries); + return $children[0] === $this->input ? $this : new self($children[0], $this->columns); } public function rowCount(): RowCount @@ -52,6 +52,6 @@ public function materialization(): Materialization public function redefines(): Redefined { - return Redefined::names(...References::init(...$this->entries)->names()); + return Redefined::names(...References::init(...$this->columns)->names()); } } diff --git a/src/core/etl/src/Flow/ETL/Plan/Node/DuplicateRow.php b/src/core/etl/src/Flow/ETL/Plan/Node/DuplicateRow.php index 1dec4c5fbd..d8f7e39dd2 100644 --- a/src/core/etl/src/Flow/ETL/Plan/Node/DuplicateRow.php +++ b/src/core/etl/src/Flow/ETL/Plan/Node/DuplicateRow.php @@ -9,19 +9,19 @@ use Flow\ETL\Plan\Redefined; use Flow\ETL\Plan\RowCount; use Flow\ETL\Plan\Transparency; -use Flow\ETL\WithEntry; +use Flow\ETL\WithColumn; use function array_map; final readonly class DuplicateRow implements Node { /** - * @param list $entries + * @param list $columns */ public function __construct( private Node $input, public mixed $condition, - public array $entries, + public array $columns, ) {} /** @@ -34,7 +34,7 @@ public function children(): array public function withChildren(array $children): self { - return $children[0] === $this->input ? $this : new self($children[0], $this->condition, $this->entries); + return $children[0] === $this->input ? $this : new self($children[0], $this->condition, $this->columns); } public function rowCount(): RowCount @@ -54,6 +54,6 @@ public function materialization(): Materialization public function redefines(): Redefined { - return Redefined::names(...array_map(static fn(WithEntry $entry): string => $entry->name, $this->entries)); + return Redefined::names(...array_map(static fn(WithColumn $column): string => $column->name, $this->columns)); } } diff --git a/src/core/etl/src/Flow/ETL/Plan/Node/ExpandColumn.php b/src/core/etl/src/Flow/ETL/Plan/Node/ExpandColumn.php index a47633cfdc..97f02269db 100644 --- a/src/core/etl/src/Flow/ETL/Plan/Node/ExpandColumn.php +++ b/src/core/etl/src/Flow/ETL/Plan/Node/ExpandColumn.php @@ -18,12 +18,12 @@ public RequiredColumns $carries; /** - * @param Definition|string $entry + * @param Definition|string $column * @param null|RequiredColumns $carries what the consumers above read; null means every column */ public function __construct( private Node $input, - public string|Definition $entry, + public string|Definition $column, public ScalarFunction $function, ?RequiredColumns $carries = null, ) { @@ -42,12 +42,12 @@ public function withChildren(array $children): self { return $children[0] === $this->input ? $this - : new self($children[0], $this->entry, $this->function, $this->carries); + : new self($children[0], $this->column, $this->function, $this->carries); } public function withCarries(RequiredColumns $carries): self { - return new self($this->input, $this->entry, $this->function, $carries); + return new self($this->input, $this->column, $this->function, $carries); } public function rowCount(): RowCount @@ -72,6 +72,6 @@ public function redefines(): Redefined public function name(): string { - return $this->entry instanceof Definition ? $this->entry->entry()->name() : $this->entry; + return $this->column instanceof Definition ? $this->column->reference()->name() : $this->column; } } diff --git a/src/core/etl/src/Flow/ETL/Plan/Node/RenameEach.php b/src/core/etl/src/Flow/ETL/Plan/Node/RenameEach.php index 431dc66018..138b72b511 100644 --- a/src/core/etl/src/Flow/ETL/Plan/Node/RenameEach.php +++ b/src/core/etl/src/Flow/ETL/Plan/Node/RenameEach.php @@ -10,12 +10,12 @@ use Flow\ETL\Plan\Redefined; use Flow\ETL\Plan\RowCount; use Flow\ETL\Plan\Transparency; -use Flow\ETL\Transformer\Rename\RenameEntryStrategy; +use Flow\ETL\Transformer\Rename\RenameColumnStrategy; final readonly class RenameEach implements Node { /** - * @param list $strategies + * @param list $strategies * * @throws InvalidArgumentException */ diff --git a/src/core/etl/src/Flow/ETL/Plan/Node/Select.php b/src/core/etl/src/Flow/ETL/Plan/Node/Select.php index c651bf7a17..7b6049ee87 100644 --- a/src/core/etl/src/Flow/ETL/Plan/Node/Select.php +++ b/src/core/etl/src/Flow/ETL/Plan/Node/Select.php @@ -15,11 +15,11 @@ final readonly class Select implements Node { /** - * @param list $entries + * @param list $columns */ public function __construct( private Node $input, - public array $entries, + public array $columns, ) {} /** @@ -32,7 +32,7 @@ public function children(): array public function withChildren(array $children): self { - return $children[0] === $this->input ? $this : new self($children[0], $this->entries); + return $children[0] === $this->input ? $this : new self($children[0], $this->columns); } public function rowCount(): RowCount @@ -52,6 +52,6 @@ public function materialization(): Materialization public function redefines(): Redefined { - return Redefined::allBut(...References::init(...$this->entries)->names()); + return Redefined::allBut(...References::init(...$this->columns)->names()); } } diff --git a/src/core/etl/src/Flow/ETL/Plan/Node/WindowColumn.php b/src/core/etl/src/Flow/ETL/Plan/Node/WindowColumn.php index 7da21329e2..9733ea33ff 100644 --- a/src/core/etl/src/Flow/ETL/Plan/Node/WindowColumn.php +++ b/src/core/etl/src/Flow/ETL/Plan/Node/WindowColumn.php @@ -18,11 +18,11 @@ final readonly class WindowColumn implements Node { /** - * @param Definition|string $entry + * @param Definition|string $column */ public function __construct( private Node $input, - public string|Definition $entry, + public string|Definition $column, public WindowFunction $function, ) {} @@ -36,7 +36,7 @@ public function children(): array public function withChildren(array $children): self { - return $children[0] === $this->input ? $this : new self($children[0], $this->entry, $this->function); + return $children[0] === $this->input ? $this : new self($children[0], $this->column, $this->function); } public function rowCount(): RowCount @@ -61,6 +61,6 @@ public function redefines(): Redefined public function name(): string { - return $this->entry instanceof Definition ? $this->entry->entry()->name() : $this->entry; + return $this->column instanceof Definition ? $this->column->reference()->name() : $this->column; } } diff --git a/src/core/etl/src/Flow/ETL/Plan/Node/WithColumn.php b/src/core/etl/src/Flow/ETL/Plan/Node/WithColumn.php index ee66641708..d12002303d 100644 --- a/src/core/etl/src/Flow/ETL/Plan/Node/WithColumn.php +++ b/src/core/etl/src/Flow/ETL/Plan/Node/WithColumn.php @@ -16,11 +16,11 @@ final readonly class WithColumn implements Node { /** - * @param Definition|string $entry + * @param Definition|string $column */ public function __construct( private Node $input, - public string|Definition $entry, + public string|Definition $column, public ScalarFunction $function, ) {} @@ -34,7 +34,7 @@ public function children(): array public function withChildren(array $children): self { - return $children[0] === $this->input ? $this : new self($children[0], $this->entry, $this->function); + return $children[0] === $this->input ? $this : new self($children[0], $this->column, $this->function); } public function rowCount(): RowCount @@ -54,14 +54,14 @@ public function materialization(): Materialization public function redefines(): Redefined { - // only a bare column reference under a plain name: a Definition entry may cast the value - return is_string($this->entry) && $this->function instanceof UnresolvedReference + // only a bare column reference under a plain name: a Definition column may cast the value + return is_string($this->column) && $this->function instanceof UnresolvedReference ? Redefined::alias($this->name(), $this->function->to()) : Redefined::names($this->name()); } public function name(): string { - return $this->entry instanceof Definition ? $this->entry->entry()->name() : $this->entry; + return $this->column instanceof Definition ? $this->column->reference()->name() : $this->column; } } diff --git a/src/core/etl/src/Flow/ETL/Planner/NodeTranslator.php b/src/core/etl/src/Flow/ETL/Planner/NodeTranslator.php index 74c2e4f26e..446402b5d3 100644 --- a/src/core/etl/src/Flow/ETL/Planner/NodeTranslator.php +++ b/src/core/etl/src/Flow/ETL/Planner/NodeTranslator.php @@ -30,16 +30,16 @@ use Flow\ETL\Transformer; use Flow\ETL\Transformer\CollectReferencesTransformer; use Flow\ETL\Transformer\CrossJoinRowsTransformer; +use Flow\ETL\Transformer\DropColumnsTransformer; use Flow\ETL\Transformer\DropDuplicatesTransformer; -use Flow\ETL\Transformer\DropEntriesTransformer; use Flow\ETL\Transformer\DuplicateRowTransformer; use Flow\ETL\Transformer\JoinEachRowsTransformer; use Flow\ETL\Transformer\LimitTransformer; -use Flow\ETL\Transformer\RenameEachEntryTransformer; -use Flow\ETL\Transformer\RenameEntryTransformer; +use Flow\ETL\Transformer\RenameColumnTransformer; +use Flow\ETL\Transformer\RenameEachColumnTransformer; use Flow\ETL\Transformer\ScalarFunctionFilterTransformer; use Flow\ETL\Transformer\ScalarFunctionTransformer; -use Flow\ETL\Transformer\SelectEntriesTransformer; +use Flow\ETL\Transformer\SelectColumnsTransformer; use Flow\ETL\Transformer\Stateful; use Flow\ETL\Transformer\UntilTransformer; @@ -80,12 +80,12 @@ public static function toSteps(Node $node, FlowContext $context, array $frames): $node->prefix, )], $node instanceof Node\Discard => [new VoidProcessor()], - $node instanceof Node\Distinct => [new DropDuplicatesTransformer(...$node->entries)], - $node instanceof Node\Drop => [new DropEntriesTransformer(...$node->entries)], + $node instanceof Node\Distinct => [new DropDuplicatesTransformer(...$node->columns)], + $node instanceof Node\Drop => [new DropColumnsTransformer(...$node->columns)], $node instanceof Node\ExpandColumn => [ - new ExpandingProcessor($node->entry, $node->function, $node->carries), + new ExpandingProcessor($node->column, $node->function, $node->carries), ], - $node instanceof Node\DuplicateRow => [new DuplicateRowTransformer($node->condition, ...$node->entries)], + $node instanceof Node\DuplicateRow => [new DuplicateRowTransformer($node->condition, ...$node->columns)], $node instanceof Node\Filter => [new ScalarFunctionFilterTransformer($node->function)], $node instanceof Node\JoinEach => match ($node->type) { JoinType::left => [JoinEachRowsTransformer::left($node->factory, $node->on)], @@ -102,10 +102,10 @@ public static function toSteps(Node $node, FlowContext $context, array $frames): ), $node instanceof Node\Limit => [new LimitTransformer($node->limit)], $node instanceof Node\Offset => [new OffsetProcessor($node->offset)], - $node instanceof Node\RenameEach => [new RenameEachEntryTransformer(...$node->strategies)], - $node instanceof Node\Rename => [new RenameEntryTransformer($node->from, $node->to)], + $node instanceof Node\RenameEach => [new RenameEachColumnTransformer(...$node->strategies)], + $node instanceof Node\Rename => [new RenameColumnTransformer($node->from, $node->to)], $node instanceof Node\Repartition => RepartitionSteps::of($node->by, $context->config), - $node instanceof Node\Select => [new SelectEntriesTransformer(...$node->entries)], + $node instanceof Node\Select => [new SelectColumnsTransformer(...$node->columns)], $node instanceof Node\Sort => SortSteps::of($node->refs, $context->config, $node->algorithm), $node instanceof Node\TopN => [new TopNProcessor( $node->refs, @@ -120,10 +120,10 @@ public static function toSteps(Node $node, FlowContext $context, array $frames): $node instanceof Node\WindowColumn => $node->function->window()->partitions()->count() ? [ ...RepartitionSteps::of($node->function->window()->partitions(), $context->config), - new WindowProcessor($node->entry, $node->function), + new WindowProcessor($node->column, $node->function), ] - : [new CollectingProcessor(), new WindowProcessor($node->entry, $node->function)], - $node instanceof Node\WithColumn => [new ScalarFunctionTransformer($node->entry, $node->function)], + : [new CollectingProcessor(), new WindowProcessor($node->column, $node->function)], + $node instanceof Node\WithColumn => [new ScalarFunctionTransformer($node->column, $node->function)], $node instanceof Node\Write => [$node->loader], default => throw InvalidLogicException::nodeNotTranslatable($node::class), }; diff --git a/src/core/etl/src/Flow/ETL/Processor/BoundExpansion.php b/src/core/etl/src/Flow/ETL/Processor/BoundExpansion.php index 118127f7f7..57cd816b5d 100644 --- a/src/core/etl/src/Flow/ETL/Processor/BoundExpansion.php +++ b/src/core/etl/src/Flow/ETL/Processor/BoundExpansion.php @@ -41,12 +41,12 @@ public function __construct( ) {} /** - * @param Definition|string $entry + * @param Definition|string $column * * @throws InvalidLogicException when $function holds no expand */ public static function of( - string|Definition $entry, + string|Definition $column, ScalarFunction $function, RequiredColumns $carries, Schema $input, @@ -61,7 +61,7 @@ public static function of( $function::class, ); $root = $expansion->root(); - $name = $entry instanceof Definition ? $entry->entry()->name() : $entry; + $name = $column instanceof Definition ? $column->reference()->name() : $column; $synthesized = $expansion->synthesized(); $synthesizedNames = $synthesized->references()->names(); $written = [$name]; @@ -77,16 +77,16 @@ public static function of( } } - $inner = new ScalarFunctionTransformer($entry, $root); + $inner = new ScalarFunctionTransformer($column, $root); $full = $inner->bind($input->add(...array_values($synthesized->definitions())))->output; $output = []; foreach ($full->definitions() as $definition) { - $column = $definition->entry()->name(); + $columnName = $definition->reference()->name(); if ( - !in_array($column, $synthesizedNames, true) - && (in_array($column, $written, true) || $carries->requires($column)) + !in_array($columnName, $synthesizedNames, true) + && (in_array($columnName, $written, true) || $carries->requires($columnName)) ) { $output[] = $definition; } @@ -96,13 +96,13 @@ public static function of( $gathered = []; foreach ($input->definitions() as $definition) { - $column = $definition->entry()->name(); + $columnName = $definition->reference()->name(); if ( - !in_array($column, $written, true) && $carries->requires($column) - || in_array($column, $rootReads, true) + !in_array($columnName, $written, true) && $carries->requires($columnName) + || in_array($columnName, $rootReads, true) ) { - $gathered[] = $column; + $gathered[] = $columnName; } } diff --git a/src/core/etl/src/Flow/ETL/Processor/ExpandingProcessor.php b/src/core/etl/src/Flow/ETL/Processor/ExpandingProcessor.php index 5e63ddf8d0..811656c27d 100644 --- a/src/core/etl/src/Flow/ETL/Processor/ExpandingProcessor.php +++ b/src/core/etl/src/Flow/ETL/Processor/ExpandingProcessor.php @@ -24,13 +24,13 @@ private int $batchSize; /** - * @param Definition|string $entry + * @param Definition|string $column * @param int $batchSize the most rows one output batch holds * * @throws InvalidArgumentException */ public function __construct( - private string|Definition $entry, + private string|Definition $column, public ScalarFunction $function, private RequiredColumns $carries, int $batchSize = 1000, @@ -45,10 +45,10 @@ public function __construct( public function bind(Schema $input): BoundStep { - $bound = BoundExpansion::of($this->entry, $this->function, $this->carries, $input); + $bound = BoundExpansion::of($this->column, $this->function, $this->carries, $input); return new BoundStep( - new self($this->entry, $this->function, $this->carries, $this->batchSize, $bound), + new self($this->column, $this->function, $this->carries, $this->batchSize, $bound), $bound->output, ); } @@ -65,7 +65,7 @@ public function process(Generator $rows, FlowContext $context): Generator $batch = $rows->current(); // a plan that refused a schema runs this step unbound $bound = $this->bound ?? BoundExpansion::of( - $this->entry, + $this->column, $this->function, $this->carries, $batch->schema(), diff --git a/src/core/etl/src/Flow/ETL/Processor/HashJoinProcessor.php b/src/core/etl/src/Flow/ETL/Processor/HashJoinProcessor.php index 4feda5beed..2269a0587c 100644 --- a/src/core/etl/src/Flow/ETL/Processor/HashJoinProcessor.php +++ b/src/core/etl/src/Flow/ETL/Processor/HashJoinProcessor.php @@ -13,7 +13,7 @@ use Flow\ETL\Bucketing\SingleBucketHasher; use Flow\ETL\Dataset\Memory\BoundedRead; use Flow\ETL\Dataset\Memory\Unit; -use Flow\ETL\Exception\DuplicatedEntriesException; +use Flow\ETL\Exception\DuplicatedColumnsException; use Flow\ETL\Exception\InvalidArgumentException; use Flow\ETL\Exception\JoinException; use Flow\ETL\Exception\SchemaDefinitionNotUniqueException; @@ -236,7 +236,7 @@ public function process(Generator $rows, FlowContext $context): Generator yield $joinedBatch; } } - } catch (DuplicatedEntriesException|SchemaDefinitionNotUniqueException $e) { + } catch (DuplicatedColumnsException|SchemaDefinitionNotUniqueException $e) { throw new JoinException($e->getMessage(), (int) $e->getCode(), $e); } finally { $this->leftBuckets->clear(); diff --git a/src/core/etl/src/Flow/ETL/Processor/WindowProcessor.php b/src/core/etl/src/Flow/ETL/Processor/WindowProcessor.php index 50c2db02c3..d15964c056 100644 --- a/src/core/etl/src/Flow/ETL/Processor/WindowProcessor.php +++ b/src/core/etl/src/Flow/ETL/Processor/WindowProcessor.php @@ -29,10 +29,10 @@ final class WindowProcessor implements Processor { /** - * @param Definition|string $entry + * @param Definition|string $column */ public function __construct( - public readonly string|Definition $entry, + public readonly string|Definition $column, public readonly WindowFunction $function, public readonly ?BoundWindow $bound = null, ) {} @@ -41,7 +41,7 @@ public function bind(Schema $input): BoundStep { $bound = $this->boundTo($input); - return new BoundStep(new self($this->entry, $this->function, $bound), $bound->output); + return new BoundStep(new self($this->column, $this->function, $bound), $bound->output); } public function process(Generator $rows, FlowContext $context): Generator @@ -75,11 +75,11 @@ private function boundTo(Schema $input): BoundWindow (new ExpandingFunctions())->refuse($resolved, 'over'); self::assertWindowReferences($resolved, $input); - $derived = $this->entry instanceof Definition - ? $this->entry - : definition_from_type($this->entry, $resolved->returns()); + $derived = $this->column instanceof Definition + ? $this->column + : definition_from_type($this->column, $resolved->returns()); - $name = $derived->entry()->name(); + $name = $derived->reference()->name(); return new BoundWindow( $resolved, @@ -191,6 +191,6 @@ private function processPartition(BoundWindow $bound, Rows $partition, FlowConte $builder = $context->backend()->builder($derived); $builder->appendMany($values); - return $partitionRows->withColumns($bound->output, [$derived->entry()->name() => $builder->finish()]); + return $partitionRows->withColumns($bound->output, [$derived->reference()->name() => $builder->finish()]); } } diff --git a/src/core/etl/src/Flow/ETL/Row/Formatter/ASCIISchemaFormatter.php b/src/core/etl/src/Flow/ETL/Row/Formatter/ASCIISchemaFormatter.php index 213f406330..00dad747f0 100644 --- a/src/core/etl/src/Flow/ETL/Row/Formatter/ASCIISchemaFormatter.php +++ b/src/core/etl/src/Flow/ETL/Row/Formatter/ASCIISchemaFormatter.php @@ -42,7 +42,7 @@ public function format(Schema $schema): string $buffer = []; foreach ($schema->definitions() as $definition) { - $buffer = $this->formatEntry($definition, $buffer); + $buffer = $this->formatColumn($definition, $buffer); } ksort($buffer); @@ -59,7 +59,7 @@ private function table(Schema $schema): Rows foreach ($schema->definitions() as $definition) { $values = [ - 'name' => $definition->entry()->name(), + 'name' => $definition->reference()->name(), 'type' => $definition->type()->normalize()['type'], 'nullable' => $definition->isNullable(), ]; @@ -89,14 +89,14 @@ private function table(Schema $schema): Rows * * @return array */ - private function formatEntry(Definition $definition, array $buffer): array + private function formatColumn(Definition $definition, array $buffer): array { - $entry = $definition->entry()->name(); + $column = $definition->reference()->name(); $indention = ''; if ($definition->type() instanceof StructureType) { - $buffer[] = $indention . '|-- ' . $entry . ': structure'; + $buffer[] = $indention . '|-- ' . $column . ': structure'; /** @var StructureType> $structureType */ $structureType = $definition->type(); @@ -117,7 +117,7 @@ private function formatEntry(Definition $definition, array $buffer): array $buffer[] = $indention . '|-- ' - . $entry + . $column . ': ' . ($definition->isNullable() ? '?' : '') . $definition->type()->toString(); diff --git a/src/core/etl/src/Flow/ETL/Row/ResolvedReference.php b/src/core/etl/src/Flow/ETL/Row/ResolvedReference.php index 913b38c8a0..663f450921 100644 --- a/src/core/etl/src/Flow/ETL/Row/ResolvedReference.php +++ b/src/core/etl/src/Flow/ETL/Row/ResolvedReference.php @@ -25,7 +25,7 @@ final class ResolvedReference implements Reference * @param Type $type */ public function __construct( - private readonly string $entry, + private readonly string $column, private readonly Type $type, private readonly ?string $alias = null, private readonly SortOrder $sort = SortOrder::ASC, @@ -39,17 +39,17 @@ public function __toString(): string public function as(string $alias): self { - return new self($this->entry, $this->type, $alias, $this->sort, $this->nulls); + return new self($this->column, $this->type, $alias, $this->sort, $this->nulls); } public function asc(NullsOrder $nulls = NullsOrder::FIRST): self { - return new self($this->entry, $this->type, $this->alias, SortOrder::ASC, $nulls); + return new self($this->column, $this->type, $this->alias, SortOrder::ASC, $nulls); } public function base(): string { - return $this->entry; + return $this->column; } /** @@ -70,7 +70,7 @@ public function withChildren(array $children): static public function desc(NullsOrder $nulls = NullsOrder::LAST): self { - return new self($this->entry, $this->type, $this->alias, SortOrder::DESC, $nulls); + return new self($this->column, $this->type, $this->alias, SortOrder::DESC, $nulls); } public function eval(Rows $rows, FlowContext $context): Column @@ -95,7 +95,7 @@ public function list(): ListFunctions public function name(): string { - return $this->alias ?? $this->entry; + return $this->alias ?? $this->column; } /** @@ -123,6 +123,6 @@ public function structure(): StructureFunctions public function to(): string { - return $this->entry; + return $this->column; } } diff --git a/src/core/etl/src/Flow/ETL/Row/UnresolvedReference.php b/src/core/etl/src/Flow/ETL/Row/UnresolvedReference.php index 1e14517a89..8412a68ae7 100644 --- a/src/core/etl/src/Flow/ETL/Row/UnresolvedReference.php +++ b/src/core/etl/src/Flow/ETL/Row/UnresolvedReference.php @@ -28,7 +28,7 @@ final class UnresolvedReference implements Reference . 'be resolved against a Schema before it can describe itself.'; public function __construct( - private readonly string $entry, + private readonly string $column, private readonly ?string $alias = null, private readonly SortOrder $sort = SortOrder::ASC, private readonly NullsOrder $nulls = NullsOrder::FIRST, @@ -50,17 +50,17 @@ public function __toString(): string public function as(string $alias): self { - return new self($this->entry, $alias, $this->sort, $this->nulls); + return new self($this->column, $alias, $this->sort, $this->nulls); } public function asc(NullsOrder $nulls = NullsOrder::FIRST): self { - return new self($this->entry, $this->alias, SortOrder::ASC, $nulls); + return new self($this->column, $this->alias, SortOrder::ASC, $nulls); } public function base(): string { - return $this->entry; + return $this->column; } /** @@ -89,17 +89,17 @@ public function withChildren(array $children): static */ public function returns(): Type { - throw InvalidLogicException::because(self::UNRESOLVED, 'returns', $this->entry); + throw InvalidLogicException::because(self::UNRESOLVED, 'returns', $this->column); } public function desc(NullsOrder $nulls = NullsOrder::LAST): self { - return new self($this->entry, $this->alias, SortOrder::DESC, $nulls); + return new self($this->column, $this->alias, SortOrder::DESC, $nulls); } public function eval(Rows $rows, FlowContext $context): Column { - throw InvalidLogicException::because(self::UNRESOLVED, 'eval', $this->entry); + throw InvalidLogicException::because(self::UNRESOLVED, 'eval', $this->column); } public function hasAlias(): bool @@ -119,7 +119,7 @@ public function list(): ListFunctions public function name(): string { - return $this->alias ?? $this->entry; + return $this->alias ?? $this->column; } /** @@ -133,7 +133,7 @@ public function resolve(Definition $definition): ResolvedReference $type = $definition->type(); return new ResolvedReference( - $this->entry, + $this->column, $definition->isNullable() ? type_optional($type) : $type, $this->alias, $this->sort, @@ -158,6 +158,6 @@ public function structure(): StructureFunctions public function to(): string { - return $this->entry; + return $this->column; } } diff --git a/src/core/etl/src/Flow/ETL/Rows.php b/src/core/etl/src/Flow/ETL/Rows.php index 9343f4ac07..1aeff23943 100644 --- a/src/core/etl/src/Flow/ETL/Rows.php +++ b/src/core/etl/src/Flow/ETL/Rows.php @@ -340,7 +340,7 @@ public function matchTo(Schema $schema, Backend $backend): self } foreach ($this->schema->definitions() as $definition) { - $name = $definition->entry()->name(); + $name = $definition->reference()->name(); if ($this->count > 0 && $schema->findDefinition($name) === null) { throw new SchemaMismatchException(0, ColumnMismatchException::unexpectedColumn($name)); @@ -352,7 +352,7 @@ public function matchTo(Schema $schema, Backend $backend): self $retyping = new ColumnRetyping(); foreach ($schema->definitions() as $name => $definition) { - $own = $this->schema->findDefinition($definition->entry()->name()); + $own = $this->schema->findDefinition($definition->reference()->name()); if ($own === null) { $columns[$name] = $retyping->absent($definition, $this->count, $backend); @@ -392,7 +392,7 @@ public function project(Schema $schema, Backend $backend): self $columns = []; foreach ($schema->definitions() as $name => $definition) { - $own = $this->schema->findDefinition($definition->entry()->name()); + $own = $this->schema->findDefinition($definition->reference()->name()); if ($own !== null) { $definitions[] = $own; @@ -416,7 +416,7 @@ public function select(string ...$names): self $columns = []; foreach ($this->schema->definitions() as $name => $definition) { - if (array_key_exists($definition->entry()->name(), $keep)) { + if (array_key_exists($definition->reference()->name(), $keep)) { $definitions[] = $definition; $columns[$name] = $this->columns[$name]; } diff --git a/src/core/etl/src/Flow/ETL/Rows/RowHashes.php b/src/core/etl/src/Flow/ETL/Rows/RowHashes.php index c0a1b8d075..8b913e9e78 100644 --- a/src/core/etl/src/Flow/ETL/Rows/RowHashes.php +++ b/src/core/etl/src/Flow/ETL/Rows/RowHashes.php @@ -34,7 +34,7 @@ public function of(Rows $rows, Algorithm $algorithm = new NativePHPHash()): arra $strings = array_fill(0, $rows->count(), ''); foreach ($rows->schema()->sort()->definitions() as $definition) { - $name = $definition->entry()->name(); + $name = $definition->reference()->name(); $type = $definition->type(); $column = $rows->column($name); diff --git a/src/core/etl/src/Flow/ETL/Rows/RowsBuilder.php b/src/core/etl/src/Flow/ETL/Rows/RowsBuilder.php index 0c42e4dcba..cee67f203c 100644 --- a/src/core/etl/src/Flow/ETL/Rows/RowsBuilder.php +++ b/src/core/etl/src/Flow/ETL/Rows/RowsBuilder.php @@ -69,7 +69,7 @@ public function __construct( ) { foreach ($schema->definitions() as $name => $definition) { $this->builders[$name] = $backend->builder($definition); - $this->names[] = $definition->entry()->name(); + $this->names[] = $definition->reference()->name(); $this->definitions[] = $definition; } } @@ -118,8 +118,8 @@ public function appendFrom(Rows $rows, int $i): self if (count($sources) > $present) { foreach ($sources as $definition) { - if (!array_key_exists($definition->entry()->name(), $this->builders)) { - $this->unexpected = $definition->entry()->name(); + if (!array_key_exists($definition->reference()->name(), $this->builders)) { + $this->unexpected = $definition->reference()->name(); break; } @@ -382,7 +382,7 @@ public function appendRows(array $rows): self public function appendTake(Rows $rows, array $indices): self { foreach ($this->schema->definitions() as $definition) { - $name = $definition->entry()->name(); + $name = $definition->reference()->name(); $this->builders[$name]->appendTake($rows->column($name), $indices); } diff --git a/src/core/etl/src/Flow/ETL/Schema.php b/src/core/etl/src/Flow/ETL/Schema.php index 6eecfc34a9..7c72daab82 100644 --- a/src/core/etl/src/Flow/ETL/Schema.php +++ b/src/core/etl/src/Flow/ETL/Schema.php @@ -126,7 +126,7 @@ public function matchOrderTo(self $authority): self $definitions = []; foreach ($authority->definitions() as $authorityDefinition) { - $definition = $this->findDefinition($authorityDefinition->entry()); + $definition = $this->findDefinition($authorityDefinition->reference()); if ($definition === null) { continue; @@ -136,7 +136,7 @@ public function matchOrderTo(self $authority): self } foreach ($this->definitions as $definition) { - if ($authority->findDefinition($definition->entry()) === null) { + if ($authority->findDefinition($definition->reference()) === null) { $definitions[] = $definition; } } @@ -191,16 +191,16 @@ public function get(string|Reference $ref): Definition } /** - * Gracefully remove entries from schema without throwing an exception if entry does not exist. + * Gracefully remove columns from schema without throwing an exception if column does not exist. */ - public function gracefulRemove(string|Reference ...$entries): self + public function gracefulRemove(string|Reference ...$columns): self { - $refs = References::init(...$entries); + $refs = References::init(...$columns); $definitions = []; foreach ($this->definitions as $definition) { - if (!$refs->has($definition->entry())) { + if (!$refs->has($definition->reference())) { $definitions[] = $definition; } } @@ -249,8 +249,8 @@ public function isSame(self $schema): bool return false; } - foreach ($this->definitions as $entry => $definition) { - if (!$definition->isSame($schema->definitions[$entry])) { + foreach ($this->definitions as $column => $definition) { + if (!$definition->isSame($schema->definitions[$column])) { return false; } } @@ -263,23 +263,23 @@ public function isSame(self $schema): bool /** * @return Schema */ - public function keep(string|Reference ...$entries): self + public function keep(string|Reference ...$columns): self { - $refs = References::init(...$entries); + $refs = References::init(...$columns); $definitions = []; - foreach ($entries as $entry) { - if (!$this->findDefinition($entry)) { + foreach ($columns as $column) { + if (!$this->findDefinition($column)) { throw SchemaDefinitionNotFoundException::withAvailable( - (string) $entry, + (string) $column, ...$this->references()->names(), ); } } foreach ($this->definitions as $definition) { - if ($refs->has($definition->entry())) { + if ($refs->has($definition->reference())) { $definitions[] = $definition; } } @@ -321,17 +321,17 @@ public function merge(self $schema): self $newDefinitions = $this->definitions; - foreach ($schema->definitions as $entry => $definition) { - if (!array_key_exists($definition->entry()->name(), $newDefinitions)) { - $newDefinitions[$entry] = $definition->makeNullable(); + foreach ($schema->definitions as $column => $definition) { + if (!array_key_exists($definition->reference()->name(), $newDefinitions)) { + $newDefinitions[$column] = $definition->makeNullable(); } else { - $newDefinitions[$entry] = $newDefinitions[$entry]->merge($definition); + $newDefinitions[$column] = $newDefinitions[$column]->merge($definition); } } - foreach ($newDefinitions as $entry => $definition) { - if (!array_key_exists($definition->entry()->name(), $schema->definitions)) { - $newDefinitions[$entry] = $definition->makeNullable(); + foreach ($newDefinitions as $column => $definition) { + if (!array_key_exists($definition->reference()->name(), $schema->definitions)) { + $newDefinitions[$column] = $definition->makeNullable(); } } @@ -380,7 +380,7 @@ public function moveTo(string|Reference $name, int $index): self if ($index < 0 || $index >= count($definitionsList)) { throw new InvalidArgumentException(sprintf( - 'Cannot move entry "%s" to index %d, schema has %d definitions', + 'Cannot move column "%s" to index %d, schema has %d definitions', (string) $name, $index, count($definitionsList), @@ -424,7 +424,7 @@ public function references(): References $refs = []; foreach ($this->definitions as $definition) { - $refs[] = $definition->entry(); + $refs[] = $definition->reference(); } return References::init(...$refs); @@ -433,23 +433,23 @@ public function references(): References /** * @return Schema */ - public function remove(string|Reference ...$entries): self + public function remove(string|Reference ...$columns): self { - $refs = References::init(...$entries); + $refs = References::init(...$columns); $definitions = []; - foreach ($entries as $entry) { - if (!$this->findDefinition($entry)) { + foreach ($columns as $column) { + if (!$this->findDefinition($column)) { throw SchemaDefinitionNotFoundException::withAvailable( - (string) $entry, + (string) $column, ...$this->references()->names(), ); } } foreach ($this->definitions as $definition) { - if (!$refs->has($definition->entry())) { + if (!$refs->has($definition->reference())) { $definitions[] = $definition; } } @@ -460,16 +460,16 @@ public function remove(string|Reference ...$entries): self /** * @return Schema */ - public function rename(string|Reference $entry, string $newName): self + public function rename(string|Reference $column, string $newName): self { $definitions = []; - if (!$this->findDefinition($entry)) { - throw SchemaDefinitionNotFoundException::withAvailable((string) $entry, ...$this->references()->names()); + if (!$this->findDefinition($column)) { + throw SchemaDefinitionNotFoundException::withAvailable((string) $column, ...$this->references()->names()); } foreach ($this->definitions as $nextDefinition) { - if ($nextDefinition->entry()->is(UnresolvedReference::init($entry))) { + if ($nextDefinition->reference()->is(UnresolvedReference::init($column))) { $definitions[] = $nextDefinition->rename($newName); } else { $definitions[] = $nextDefinition; @@ -495,10 +495,13 @@ public function reorder(string|Reference ...$names): self foreach ($names as $name) { $definition = $this->findDefinition($name) ?: throw SchemaDefinitionNotFoundException::withAvailable((string) $name, ...$this->references()->names()); - $key = $definition->entry()->name(); + $key = $definition->reference()->name(); if (array_key_exists($key, $reordered)) { - throw new InvalidArgumentException(sprintf('Cannot reorder entry "%s" more than once', (string) $name)); + throw new InvalidArgumentException(sprintf( + 'Cannot reorder column "%s" more than once', + (string) $name, + )); } $reordered[$key] = true; @@ -519,16 +522,16 @@ public function reorder(string|Reference ...$names): self * * @return Schema */ - public function replace(string|Reference $entry, Definition $definition): self + public function replace(string|Reference $column, Definition $definition): self { $definitions = []; - if (!$this->findDefinition($entry)) { - throw SchemaDefinitionNotFoundException::withAvailable((string) $entry, ...$this->references()->names()); + if (!$this->findDefinition($column)) { + throw SchemaDefinitionNotFoundException::withAvailable((string) $column, ...$this->references()->names()); } foreach ($this->definitions as $nextDefinition) { - if ($nextDefinition->entry()->is(UnresolvedReference::init($entry))) { + if ($nextDefinition->reference()->is(UnresolvedReference::init($column))) { $definitions[] = $definition; } else { $definitions[] = $nextDefinition; @@ -589,7 +592,7 @@ private function moveRelative(string|Reference $name, string|Reference $referenc } if (UnresolvedReference::init($name)->name() === $referenceName) { - throw new InvalidArgumentException(sprintf('Cannot move entry "%s" relative to itself', (string) $name)); + throw new InvalidArgumentException(sprintf('Cannot move column "%s" relative to itself', (string) $name)); } $definitionsList = array_values($this->definitions); @@ -599,7 +602,7 @@ private function moveRelative(string|Reference $name, string|Reference $referenc $referenceIndex = 0; foreach ($definitionsList as $position => $definition) { - if ($definition->entry()->name() === $referenceName) { + if ($definition->reference()->name() === $referenceName) { $referenceIndex = $position; break; @@ -620,17 +623,17 @@ private function setDefinitions(Definition ...$definitions): void $duplicatedDefinitions = []; foreach ($definitions as $definition) { - if (array_key_exists($definition->entry()->name(), $uniqueDefinitions)) { - $duplicatedDefinitions[] = $definition->entry()->name(); + if (array_key_exists($definition->reference()->name(), $uniqueDefinitions)) { + $duplicatedDefinitions[] = $definition->reference()->name(); } - $uniqueDefinitions[$definition->entry()->name()] = $definition; + $uniqueDefinitions[$definition->reference()->name()] = $definition; } if (count($uniqueDefinitions) !== count($definitions)) { throw new SchemaDefinitionNotUniqueException(sprintf( - 'Entry definitions must be unique, duplicated entries: [%s], all: [%s]', + 'Column definitions must be unique, duplicated columns: [%s], all: [%s]', implode(', ', $duplicatedDefinitions), - implode(', ', array_map(static fn(Definition $d) => $d->entry()->name(), $definitions)), + implode(', ', array_map(static fn(Definition $d) => $d->reference()->name(), $definitions)), )); } diff --git a/src/core/etl/src/Flow/ETL/Schema/Definition.php b/src/core/etl/src/Flow/ETL/Schema/Definition.php index e7cc3e17ac..141b85dba6 100644 --- a/src/core/etl/src/Flow/ETL/Schema/Definition.php +++ b/src/core/etl/src/Flow/ETL/Schema/Definition.php @@ -19,7 +19,7 @@ interface Definition */ public function addMetadata(string $key, int|string|bool|float|array $value): static; - public function entry(): Reference; + public function reference(): Reference; /** * Checks if another type is compatible with this type. Nullability is validated from a schema evolution perspective. diff --git a/src/core/etl/src/Flow/ETL/Schema/Definition/BooleanDefinition.php b/src/core/etl/src/Flow/ETL/Schema/Definition/BooleanDefinition.php index ededf747e0..9c4ba7b515 100644 --- a/src/core/etl/src/Flow/ETL/Schema/Definition/BooleanDefinition.php +++ b/src/core/etl/src/Flow/ETL/Schema/Definition/BooleanDefinition.php @@ -47,14 +47,14 @@ public function addMetadata(string $key, int|string|bool|float|array $value): st return new self($this->ref, $this->nullable, $this->metadata->add($key, $value)); } - public function entry(): Reference + public function reference(): Reference { return $this->ref; } public function isCompatible(Definition $definition): bool { - if (!$this->ref->is($definition->entry())) { + if (!$this->ref->is($definition->reference())) { return false; } @@ -95,11 +95,11 @@ public function matches(mixed $value): bool public function merge(Definition $definition): Definition { - if (!$this->ref->is($definition->entry())) { + if (!$this->ref->is($definition->reference())) { throw new RuntimeException(sprintf( 'Cannot merge different definitions, %s and %s', $this->ref->name(), - $definition->entry()->name(), + $definition->reference()->name(), )); } diff --git a/src/core/etl/src/Flow/ETL/Schema/Definition/CommonType.php b/src/core/etl/src/Flow/ETL/Schema/Definition/CommonType.php index 93c0fa8ead..eb55262a9d 100644 --- a/src/core/etl/src/Flow/ETL/Schema/Definition/CommonType.php +++ b/src/core/etl/src/Flow/ETL/Schema/Definition/CommonType.php @@ -29,9 +29,9 @@ public function merge(Definition $left, Definition $right): Definition $metadata = $left->metadata()->merge($right->metadata()); if (in_array($left::class, self::CONTAINERS, true) && in_array($right::class, self::CONTAINERS, true)) { - return new JsonDefinition($left->entry(), $nullable, $metadata); + return new JsonDefinition($left->reference(), $nullable, $metadata); } - return new StringDefinition($left->entry(), $nullable, $metadata); + return new StringDefinition($left->reference(), $nullable, $metadata); } } diff --git a/src/core/etl/src/Flow/ETL/Schema/Definition/DateDefinition.php b/src/core/etl/src/Flow/ETL/Schema/Definition/DateDefinition.php index 8cec8ab27d..3b876cc597 100644 --- a/src/core/etl/src/Flow/ETL/Schema/Definition/DateDefinition.php +++ b/src/core/etl/src/Flow/ETL/Schema/Definition/DateDefinition.php @@ -47,14 +47,14 @@ public function addMetadata(string $key, int|string|bool|float|array $value): st return new self($this->ref, $this->nullable, $this->metadata->add($key, $value)); } - public function entry(): Reference + public function reference(): Reference { return $this->ref; } public function isCompatible(Definition $definition): bool { - if (!$this->ref->is($definition->entry())) { + if (!$this->ref->is($definition->reference())) { return false; } @@ -95,11 +95,11 @@ public function matches(mixed $value): bool public function merge(Definition $definition): Definition { - if (!$this->ref->is($definition->entry())) { + if (!$this->ref->is($definition->reference())) { throw new RuntimeException(sprintf( 'Cannot merge different definitions, %s and %s', $this->ref->name(), - $definition->entry()->name(), + $definition->reference()->name(), )); } diff --git a/src/core/etl/src/Flow/ETL/Schema/Definition/DateTimeDefinition.php b/src/core/etl/src/Flow/ETL/Schema/Definition/DateTimeDefinition.php index 0aa87aa8b6..e20bf05d69 100644 --- a/src/core/etl/src/Flow/ETL/Schema/Definition/DateTimeDefinition.php +++ b/src/core/etl/src/Flow/ETL/Schema/Definition/DateTimeDefinition.php @@ -45,14 +45,14 @@ public function addMetadata(string $key, int|string|bool|float|array $value): st return new self($this->ref, $this->type, $this->nullable, $this->metadata->add($key, $value)); } - public function entry(): Reference + public function reference(): Reference { return $this->ref; } public function isCompatible(Definition $definition): bool { - if (!$this->ref->is($definition->entry())) { + if (!$this->ref->is($definition->reference())) { return false; } @@ -93,11 +93,11 @@ public function matches(mixed $value): bool public function merge(Definition $definition): Definition { - if (!$this->ref->is($definition->entry())) { + if (!$this->ref->is($definition->reference())) { throw new RuntimeException(sprintf( 'Cannot merge different definitions, %s and %s', $this->ref->name(), - $definition->entry()->name(), + $definition->reference()->name(), )); } diff --git a/src/core/etl/src/Flow/ETL/Schema/Definition/EnumDefinition.php b/src/core/etl/src/Flow/ETL/Schema/Definition/EnumDefinition.php index 6c4e2314e8..d11880535e 100644 --- a/src/core/etl/src/Flow/ETL/Schema/Definition/EnumDefinition.php +++ b/src/core/etl/src/Flow/ETL/Schema/Definition/EnumDefinition.php @@ -60,7 +60,7 @@ public function addMetadata(string $key, int|string|bool|float|array $value): st return new self($this->ref, $this->enumClass, $this->nullable, $this->metadata->add($key, $value)); } - public function entry(): Reference + public function reference(): Reference { return $this->ref; } @@ -75,7 +75,7 @@ public function enumClass(): string public function isCompatible(Definition $definition): bool { - if (!$this->ref->is($definition->entry())) { + if (!$this->ref->is($definition->reference())) { return false; } @@ -116,11 +116,11 @@ public function matches(mixed $value): bool public function merge(Definition $definition): Definition { - if (!$this->ref->is($definition->entry())) { + if (!$this->ref->is($definition->reference())) { throw new RuntimeException(sprintf( 'Cannot merge different definitions, %s and %s', $this->ref->name(), - $definition->entry()->name(), + $definition->reference()->name(), )); } diff --git a/src/core/etl/src/Flow/ETL/Schema/Definition/FloatDefinition.php b/src/core/etl/src/Flow/ETL/Schema/Definition/FloatDefinition.php index 2f2883f796..1b7467e683 100644 --- a/src/core/etl/src/Flow/ETL/Schema/Definition/FloatDefinition.php +++ b/src/core/etl/src/Flow/ETL/Schema/Definition/FloatDefinition.php @@ -47,14 +47,14 @@ public function addMetadata(string $key, int|string|bool|float|array $value): st return new self($this->ref, $this->nullable, $this->metadata->add($key, $value)); } - public function entry(): Reference + public function reference(): Reference { return $this->ref; } public function isCompatible(Definition $definition): bool { - if (!$this->ref->is($definition->entry())) { + if (!$this->ref->is($definition->reference())) { return false; } @@ -95,11 +95,11 @@ public function matches(mixed $value): bool public function merge(Definition $definition): Definition { - if (!$this->ref->is($definition->entry())) { + if (!$this->ref->is($definition->reference())) { throw new RuntimeException(sprintf( 'Cannot merge different definitions, %s and %s', $this->ref->name(), - $definition->entry()->name(), + $definition->reference()->name(), )); } diff --git a/src/core/etl/src/Flow/ETL/Schema/Definition/HTMLDefinition.php b/src/core/etl/src/Flow/ETL/Schema/Definition/HTMLDefinition.php index d88a77134f..c54373bf08 100644 --- a/src/core/etl/src/Flow/ETL/Schema/Definition/HTMLDefinition.php +++ b/src/core/etl/src/Flow/ETL/Schema/Definition/HTMLDefinition.php @@ -48,14 +48,14 @@ public function addMetadata(string $key, int|string|bool|float|array $value): st return new self($this->ref, $this->nullable, $this->metadata->add($key, $value)); } - public function entry(): Reference + public function reference(): Reference { return $this->ref; } public function isCompatible(Definition $definition): bool { - if (!$this->ref->is($definition->entry())) { + if (!$this->ref->is($definition->reference())) { return false; } @@ -96,11 +96,11 @@ public function matches(mixed $value): bool public function merge(Definition $definition): Definition { - if (!$this->ref->is($definition->entry())) { + if (!$this->ref->is($definition->reference())) { throw new RuntimeException(sprintf( 'Cannot merge different definitions, %s and %s', $this->ref->name(), - $definition->entry()->name(), + $definition->reference()->name(), )); } diff --git a/src/core/etl/src/Flow/ETL/Schema/Definition/HTMLElementDefinition.php b/src/core/etl/src/Flow/ETL/Schema/Definition/HTMLElementDefinition.php index 11245275a3..ae7ee84e4d 100644 --- a/src/core/etl/src/Flow/ETL/Schema/Definition/HTMLElementDefinition.php +++ b/src/core/etl/src/Flow/ETL/Schema/Definition/HTMLElementDefinition.php @@ -48,14 +48,14 @@ public function addMetadata(string $key, int|string|bool|float|array $value): st return new self($this->ref, $this->nullable, $this->metadata->add($key, $value)); } - public function entry(): Reference + public function reference(): Reference { return $this->ref; } public function isCompatible(Definition $definition): bool { - if (!$this->ref->is($definition->entry())) { + if (!$this->ref->is($definition->reference())) { return false; } @@ -96,11 +96,11 @@ public function matches(mixed $value): bool public function merge(Definition $definition): Definition { - if (!$this->ref->is($definition->entry())) { + if (!$this->ref->is($definition->reference())) { throw new RuntimeException(sprintf( 'Cannot merge different definitions, %s and %s', $this->ref->name(), - $definition->entry()->name(), + $definition->reference()->name(), )); } diff --git a/src/core/etl/src/Flow/ETL/Schema/Definition/IntegerDefinition.php b/src/core/etl/src/Flow/ETL/Schema/Definition/IntegerDefinition.php index c347a0b9ba..a1caf0ce43 100644 --- a/src/core/etl/src/Flow/ETL/Schema/Definition/IntegerDefinition.php +++ b/src/core/etl/src/Flow/ETL/Schema/Definition/IntegerDefinition.php @@ -47,14 +47,14 @@ public function addMetadata(string $key, int|string|bool|float|array $value): st return new self($this->ref, $this->nullable, $this->metadata->add($key, $value)); } - public function entry(): Reference + public function reference(): Reference { return $this->ref; } public function isCompatible(Definition $definition): bool { - if (!$this->ref->is($definition->entry())) { + if (!$this->ref->is($definition->reference())) { return false; } @@ -95,11 +95,11 @@ public function matches(mixed $value): bool public function merge(Definition $definition): Definition { - if (!$this->ref->is($definition->entry())) { + if (!$this->ref->is($definition->reference())) { throw new RuntimeException(sprintf( 'Cannot merge different definitions, %s and %s', $this->ref->name(), - $definition->entry()->name(), + $definition->reference()->name(), )); } diff --git a/src/core/etl/src/Flow/ETL/Schema/Definition/JsonDefinition.php b/src/core/etl/src/Flow/ETL/Schema/Definition/JsonDefinition.php index 706745793a..ac0a7e136a 100644 --- a/src/core/etl/src/Flow/ETL/Schema/Definition/JsonDefinition.php +++ b/src/core/etl/src/Flow/ETL/Schema/Definition/JsonDefinition.php @@ -48,14 +48,14 @@ public function addMetadata(string $key, int|string|bool|float|array $value): st return new self($this->ref, $this->nullable, $this->metadata->add($key, $value)); } - public function entry(): Reference + public function reference(): Reference { return $this->ref; } public function isCompatible(Definition $definition): bool { - if (!$this->ref->is($definition->entry())) { + if (!$this->ref->is($definition->reference())) { return false; } @@ -96,11 +96,11 @@ public function matches(mixed $value): bool public function merge(Definition $definition): Definition { - if (!$this->ref->is($definition->entry())) { + if (!$this->ref->is($definition->reference())) { throw new RuntimeException(sprintf( 'Cannot merge different definitions, %s and %s', $this->ref->name(), - $definition->entry()->name(), + $definition->reference()->name(), )); } diff --git a/src/core/etl/src/Flow/ETL/Schema/Definition/ListDefinition.php b/src/core/etl/src/Flow/ETL/Schema/Definition/ListDefinition.php index ca38aabbb1..34e7dab37f 100644 --- a/src/core/etl/src/Flow/ETL/Schema/Definition/ListDefinition.php +++ b/src/core/etl/src/Flow/ETL/Schema/Definition/ListDefinition.php @@ -55,14 +55,14 @@ public function addMetadata(string $key, int|string|bool|float|array $value): st return new self($this->ref, $this->type, $this->nullable, $this->metadata->add($key, $value)); } - public function entry(): Reference + public function reference(): Reference { return $this->ref; } public function isCompatible(Definition $definition): bool { - if (!$this->ref->is($definition->entry())) { + if (!$this->ref->is($definition->reference())) { return false; } @@ -129,11 +129,11 @@ public function matches(mixed $value): bool public function merge(Definition $definition): Definition { - if (!$this->ref->is($definition->entry())) { + if (!$this->ref->is($definition->reference())) { throw new RuntimeException(sprintf( 'Cannot merge different definitions, %s and %s', $this->ref->name(), - $definition->entry()->name(), + $definition->reference()->name(), )); } diff --git a/src/core/etl/src/Flow/ETL/Schema/Definition/MapDefinition.php b/src/core/etl/src/Flow/ETL/Schema/Definition/MapDefinition.php index c3cb983cda..0362030ffb 100644 --- a/src/core/etl/src/Flow/ETL/Schema/Definition/MapDefinition.php +++ b/src/core/etl/src/Flow/ETL/Schema/Definition/MapDefinition.php @@ -56,14 +56,14 @@ public function addMetadata(string $key, int|string|bool|float|array $value): st return new self($this->ref, $this->type, $this->nullable, $this->metadata->add($key, $value)); } - public function entry(): Reference + public function reference(): Reference { return $this->ref; } public function isCompatible(Definition $definition): bool { - if (!$this->ref->is($definition->entry())) { + if (!$this->ref->is($definition->reference())) { return false; } @@ -136,11 +136,11 @@ public function matches(mixed $value): bool public function merge(Definition $definition): Definition { - if (!$this->ref->is($definition->entry())) { + if (!$this->ref->is($definition->reference())) { throw new RuntimeException(sprintf( 'Cannot merge different definitions, %s and %s', $this->ref->name(), - $definition->entry()->name(), + $definition->reference()->name(), )); } diff --git a/src/core/etl/src/Flow/ETL/Schema/Definition/NullDefinition.php b/src/core/etl/src/Flow/ETL/Schema/Definition/NullDefinition.php index b0911a5ae8..8fc4312fc4 100644 --- a/src/core/etl/src/Flow/ETL/Schema/Definition/NullDefinition.php +++ b/src/core/etl/src/Flow/ETL/Schema/Definition/NullDefinition.php @@ -50,14 +50,14 @@ public function addMetadata(string $key, int|string|bool|float|array $value): st return new self($this->ref, $this->metadata->add($key, $value)); } - public function entry(): Reference + public function reference(): Reference { return $this->ref; } public function isCompatible(Definition $definition): bool { - if (!$this->ref->is($definition->entry())) { + if (!$this->ref->is($definition->reference())) { return false; } @@ -94,11 +94,11 @@ public function matches(mixed $value): bool public function merge(Definition $definition): Definition { - if (!$this->ref->is($definition->entry())) { + if (!$this->ref->is($definition->reference())) { throw new RuntimeException(sprintf( 'Cannot merge different definitions, %s and %s', $this->ref->name(), - $definition->entry()->name(), + $definition->reference()->name(), )); } diff --git a/src/core/etl/src/Flow/ETL/Schema/Definition/StringDefinition.php b/src/core/etl/src/Flow/ETL/Schema/Definition/StringDefinition.php index 8a2e04dce3..bbd4ec899e 100644 --- a/src/core/etl/src/Flow/ETL/Schema/Definition/StringDefinition.php +++ b/src/core/etl/src/Flow/ETL/Schema/Definition/StringDefinition.php @@ -51,14 +51,14 @@ public function addMetadata(string $key, int|string|bool|float|array $value): st return new self($this->ref, $this->nullable, $this->metadata->add($key, $value), $this->type); } - public function entry(): Reference + public function reference(): Reference { return $this->ref; } public function isCompatible(Definition $definition): bool { - if (!$this->ref->is($definition->entry())) { + if (!$this->ref->is($definition->reference())) { return false; } @@ -99,11 +99,11 @@ public function matches(mixed $value): bool public function merge(Definition $definition): Definition { - if (!$this->ref->is($definition->entry())) { + if (!$this->ref->is($definition->reference())) { throw new RuntimeException(sprintf( 'Cannot merge different definitions, %s and %s', $this->ref->name(), - $definition->entry()->name(), + $definition->reference()->name(), )); } diff --git a/src/core/etl/src/Flow/ETL/Schema/Definition/StructureDefinition.php b/src/core/etl/src/Flow/ETL/Schema/Definition/StructureDefinition.php index 9e983e0819..ca305ead95 100644 --- a/src/core/etl/src/Flow/ETL/Schema/Definition/StructureDefinition.php +++ b/src/core/etl/src/Flow/ETL/Schema/Definition/StructureDefinition.php @@ -54,14 +54,14 @@ public function addMetadata(string $key, int|string|bool|float|array $value): st return new self($this->ref, $this->type, $this->nullable, $this->metadata->add($key, $value)); } - public function entry(): Reference + public function reference(): Reference { return $this->ref; } public function isCompatible(Definition $definition): bool { - if (!$this->ref->is($definition->entry())) { + if (!$this->ref->is($definition->reference())) { return false; } @@ -147,11 +147,11 @@ public function matches(mixed $value): bool public function merge(Definition $definition): Definition { - if (!$this->ref->is($definition->entry())) { + if (!$this->ref->is($definition->reference())) { throw new RuntimeException(sprintf( 'Cannot merge different definitions, %s and %s', $this->ref->name(), - $definition->entry()->name(), + $definition->reference()->name(), )); } diff --git a/src/core/etl/src/Flow/ETL/Schema/Definition/TimeDefinition.php b/src/core/etl/src/Flow/ETL/Schema/Definition/TimeDefinition.php index aeb9bb3179..9f061d2ce5 100644 --- a/src/core/etl/src/Flow/ETL/Schema/Definition/TimeDefinition.php +++ b/src/core/etl/src/Flow/ETL/Schema/Definition/TimeDefinition.php @@ -47,14 +47,14 @@ public function addMetadata(string $key, int|string|bool|float|array $value): st return new self($this->ref, $this->nullable, $this->metadata->add($key, $value)); } - public function entry(): Reference + public function reference(): Reference { return $this->ref; } public function isCompatible(Definition $definition): bool { - if (!$this->ref->is($definition->entry())) { + if (!$this->ref->is($definition->reference())) { return false; } @@ -95,11 +95,11 @@ public function matches(mixed $value): bool public function merge(Definition $definition): Definition { - if (!$this->ref->is($definition->entry())) { + if (!$this->ref->is($definition->reference())) { throw new RuntimeException(sprintf( 'Cannot merge different definitions, %s and %s', $this->ref->name(), - $definition->entry()->name(), + $definition->reference()->name(), )); } diff --git a/src/core/etl/src/Flow/ETL/Schema/Definition/TimeZoneDefinition.php b/src/core/etl/src/Flow/ETL/Schema/Definition/TimeZoneDefinition.php index 7abd48ec0a..1ad35a3f83 100644 --- a/src/core/etl/src/Flow/ETL/Schema/Definition/TimeZoneDefinition.php +++ b/src/core/etl/src/Flow/ETL/Schema/Definition/TimeZoneDefinition.php @@ -47,14 +47,14 @@ public function addMetadata(string $key, int|string|bool|float|array $value): st return new self($this->ref, $this->nullable, $this->metadata->add($key, $value)); } - public function entry(): Reference + public function reference(): Reference { return $this->ref; } public function isCompatible(Definition $definition): bool { - if (!$this->ref->is($definition->entry())) { + if (!$this->ref->is($definition->reference())) { return false; } @@ -95,11 +95,11 @@ public function matches(mixed $value): bool public function merge(Definition $definition): Definition { - if (!$this->ref->is($definition->entry())) { + if (!$this->ref->is($definition->reference())) { throw new RuntimeException(sprintf( 'Cannot merge different definitions, %s and %s', $this->ref->name(), - $definition->entry()->name(), + $definition->reference()->name(), )); } diff --git a/src/core/etl/src/Flow/ETL/Schema/Definition/UuidDefinition.php b/src/core/etl/src/Flow/ETL/Schema/Definition/UuidDefinition.php index 1926b61077..44fbc6d4fa 100644 --- a/src/core/etl/src/Flow/ETL/Schema/Definition/UuidDefinition.php +++ b/src/core/etl/src/Flow/ETL/Schema/Definition/UuidDefinition.php @@ -48,14 +48,14 @@ public function addMetadata(string $key, int|string|bool|float|array $value): st return new self($this->ref, $this->nullable, $this->metadata->add($key, $value)); } - public function entry(): Reference + public function reference(): Reference { return $this->ref; } public function isCompatible(Definition $definition): bool { - if (!$this->ref->is($definition->entry())) { + if (!$this->ref->is($definition->reference())) { return false; } @@ -96,11 +96,11 @@ public function matches(mixed $value): bool public function merge(Definition $definition): Definition { - if (!$this->ref->is($definition->entry())) { + if (!$this->ref->is($definition->reference())) { throw new RuntimeException(sprintf( 'Cannot merge different definitions, %s and %s', $this->ref->name(), - $definition->entry()->name(), + $definition->reference()->name(), )); } diff --git a/src/core/etl/src/Flow/ETL/Schema/Definition/XMLDefinition.php b/src/core/etl/src/Flow/ETL/Schema/Definition/XMLDefinition.php index 1986ab9115..5e7e24a52b 100644 --- a/src/core/etl/src/Flow/ETL/Schema/Definition/XMLDefinition.php +++ b/src/core/etl/src/Flow/ETL/Schema/Definition/XMLDefinition.php @@ -48,14 +48,14 @@ public function addMetadata(string $key, int|string|bool|float|array $value): st return new self($this->ref, $this->nullable, $this->metadata->add($key, $value)); } - public function entry(): Reference + public function reference(): Reference { return $this->ref; } public function isCompatible(Definition $definition): bool { - if (!$this->ref->is($definition->entry())) { + if (!$this->ref->is($definition->reference())) { return false; } @@ -96,11 +96,11 @@ public function matches(mixed $value): bool public function merge(Definition $definition): Definition { - if (!$this->ref->is($definition->entry())) { + if (!$this->ref->is($definition->reference())) { throw new RuntimeException(sprintf( 'Cannot merge different definitions, %s and %s', $this->ref->name(), - $definition->entry()->name(), + $definition->reference()->name(), )); } diff --git a/src/core/etl/src/Flow/ETL/Schema/Definition/XMLElementDefinition.php b/src/core/etl/src/Flow/ETL/Schema/Definition/XMLElementDefinition.php index df9583286e..5df6e08444 100644 --- a/src/core/etl/src/Flow/ETL/Schema/Definition/XMLElementDefinition.php +++ b/src/core/etl/src/Flow/ETL/Schema/Definition/XMLElementDefinition.php @@ -47,14 +47,14 @@ public function addMetadata(string $key, int|string|bool|float|array $value): st return new self($this->ref, $this->nullable, $this->metadata->add($key, $value)); } - public function entry(): Reference + public function reference(): Reference { return $this->ref; } public function isCompatible(Definition $definition): bool { - if (!$this->ref->is($definition->entry())) { + if (!$this->ref->is($definition->reference())) { return false; } @@ -95,11 +95,11 @@ public function matches(mixed $value): bool public function merge(Definition $definition): Definition { - if (!$this->ref->is($definition->entry())) { + if (!$this->ref->is($definition->reference())) { throw new RuntimeException(sprintf( 'Cannot merge different definitions, %s and %s', $this->ref->name(), - $definition->entry()->name(), + $definition->reference()->name(), )); } diff --git a/src/core/etl/src/Flow/ETL/Schema/Formatter/PHPSchemaFormatter.php b/src/core/etl/src/Flow/ETL/Schema/Formatter/PHPSchemaFormatter.php index 2ba94537fd..5352b858c7 100644 --- a/src/core/etl/src/Flow/ETL/Schema/Formatter/PHPSchemaFormatter.php +++ b/src/core/etl/src/Flow/ETL/Schema/Formatter/PHPSchemaFormatter.php @@ -71,7 +71,7 @@ private function dateTimeType(Definition $definition): string return sprintf( '\%s("%s", nullable: %s, metadata: %s, zone: "%s")', $reflection->getName(), - $definition->entry()->name(), + $definition->reference()->name(), $definition->isNullable() ? 'true' : 'false', $this->formatMetadata($definition->metadata()), $type->zoneName(), @@ -89,7 +89,7 @@ private function enumType(Definition $definition): string return sprintf( '\%s("%s", type: \%s::class, nullable: %s, metadata: %s)', $reflection->getName(), - $definition->entry()->name(), + $definition->reference()->name(), $type->class, $definition->isNullable() ? 'true' : 'false', $this->formatMetadata($definition->metadata()), @@ -106,7 +106,7 @@ private function floatType(Definition $definition): string return sprintf( '\%s("%s", nullable: %s, metadata: %s)', $reflection->getName(), - $definition->entry()->name(), + $definition->reference()->name(), $definition->isNullable() ? 'true' : 'false', $this->formatMetadata($definition->metadata()), ); @@ -177,7 +177,7 @@ private function listType(Definition $definition): string return sprintf( '\%s("%s", type: %s, nullable: %s, metadata: %s)', $reflection->getName(), - $definition->entry()->name(), + $definition->reference()->name(), $this->typeFormatter->format($type), $definition->isNullable() ? 'true' : 'false', $this->formatMetadata($definition->metadata()), @@ -196,7 +196,7 @@ private function mapType(Definition $definition): string return sprintf( '\%s("%s", type: %s, nullable: %s, metadata: %s)', $reflection->getName(), - $definition->entry()->name(), + $definition->reference()->name(), $this->typeFormatter->format($type), $definition->isNullable() ? 'true' : 'false', $this->formatMetadata($definition->metadata()), @@ -213,7 +213,7 @@ private function numericStringType(Definition $definition): string return sprintf( '\%s("%s", type: %s, nullable: %s, metadata: %s)', $reflection->getName(), - $definition->entry()->name(), + $definition->reference()->name(), $this->typeFormatter->format($definition->type()), $definition->isNullable() ? 'true' : 'false', $this->formatMetadata($definition->metadata()), @@ -247,7 +247,7 @@ private function simpleType(Definition $definition): string return sprintf( '\%s("%s", nullable: %s, metadata: %s)', $reflection->getName(), - $definition->entry()->name(), + $definition->reference()->name(), $definition->isNullable() ? 'true' : 'false', $this->formatMetadata($definition->metadata()), ); @@ -265,7 +265,7 @@ private function structureType(Definition $definition): string return sprintf( '\%s("%s", type: %s, nullable: %s, metadata: %s)', $reflection->getName(), - $definition->entry()->name(), + $definition->reference()->name(), $this->typeFormatter->format($type), $definition->isNullable() ? 'true' : 'false', $this->formatMetadata($definition->metadata()), diff --git a/src/core/etl/src/Flow/ETL/Schema/SortingStrategy/AlphabeticalStrategy.php b/src/core/etl/src/Flow/ETL/Schema/SortingStrategy/AlphabeticalStrategy.php index c402da449a..e0ececa99d 100644 --- a/src/core/etl/src/Flow/ETL/Schema/SortingStrategy/AlphabeticalStrategy.php +++ b/src/core/etl/src/Flow/ETL/Schema/SortingStrategy/AlphabeticalStrategy.php @@ -21,9 +21,9 @@ public function __construct( public function compare(Definition $left, Definition $right): int { if ($this->order === SortOrder::ASC) { - return $left->entry()->name() <=> $right->entry()->name(); + return $left->reference()->name() <=> $right->reference()->name(); } - return $right->entry()->name() <=> $left->entry()->name(); + return $right->reference()->name() <=> $left->reference()->name(); } } diff --git a/src/core/etl/src/Flow/ETL/Schema/SortingStrategy/MetadataStrategy.php b/src/core/etl/src/Flow/ETL/Schema/SortingStrategy/MetadataStrategy.php index 7351060cf7..77e01a2421 100644 --- a/src/core/etl/src/Flow/ETL/Schema/SortingStrategy/MetadataStrategy.php +++ b/src/core/etl/src/Flow/ETL/Schema/SortingStrategy/MetadataStrategy.php @@ -33,7 +33,7 @@ public function compare(Definition $left, Definition $right): int return $comparison; } - return $left->entry()->name() <=> $right->entry()->name(); + return $left->reference()->name() <=> $right->reference()->name(); } if ($leftHas) { @@ -44,6 +44,6 @@ public function compare(Definition $left, Definition $right): int return 1; } - return $left->entry()->name() <=> $right->entry()->name(); + return $left->reference()->name() <=> $right->reference()->name(); } } diff --git a/src/core/etl/src/Flow/ETL/Schema/Validator/EvolvingValidator.php b/src/core/etl/src/Flow/ETL/Schema/Validator/EvolvingValidator.php index 67e63fba93..9ed79cf0ea 100644 --- a/src/core/etl/src/Flow/ETL/Schema/Validator/EvolvingValidator.php +++ b/src/core/etl/src/Flow/ETL/Schema/Validator/EvolvingValidator.php @@ -32,7 +32,7 @@ public function validate(Schema $expected, Schema $given): ValidationContext $unexpectedDefinitions = []; foreach ($expected->definitions() as $expectedDefinition) { - $givenDefinition = $given->findDefinition($expectedDefinition->entry()); + $givenDefinition = $given->findDefinition($expectedDefinition->reference()); if ($givenDefinition === null) { if (!$expectedDefinition->isNullable()) { @@ -54,7 +54,7 @@ public function validate(Schema $expected, Schema $given): ValidationContext } foreach ($given->definitions() as $givenDefinition) { - if ($expected->findDefinition($givenDefinition->entry()) === null && !$givenDefinition->isNullable()) { + if ($expected->findDefinition($givenDefinition->reference()) === null && !$givenDefinition->isNullable()) { $unexpectedDefinitions[] = $givenDefinition; } } diff --git a/src/core/etl/src/Flow/ETL/Schema/Validator/SelectiveValidator.php b/src/core/etl/src/Flow/ETL/Schema/Validator/SelectiveValidator.php index 8eccf3a499..29099b8e65 100644 --- a/src/core/etl/src/Flow/ETL/Schema/Validator/SelectiveValidator.php +++ b/src/core/etl/src/Flow/ETL/Schema/Validator/SelectiveValidator.php @@ -9,7 +9,7 @@ use Flow\ETL\SchemaValidator; /** - * Matches only entries defined in the expected schema allowing for extra entries in given schema. + * Matches only columns defined in the expected schema allowing for extra columns in given schema. */ final class SelectiveValidator implements SchemaValidator { @@ -19,7 +19,7 @@ public function validate(Schema $expected, Schema $given): ValidationContext $mismatchedDefinitions = []; foreach ($expected->definitions() as $expectedDefinition) { - $givenDefinition = $given->findDefinition($expectedDefinition->entry()); + $givenDefinition = $given->findDefinition($expectedDefinition->reference()); if ($givenDefinition === null) { $missingDefinitions[] = $expectedDefinition; diff --git a/src/core/etl/src/Flow/ETL/Schema/Validator/StrictValidator.php b/src/core/etl/src/Flow/ETL/Schema/Validator/StrictValidator.php index f1da1f55f0..c23be86a06 100644 --- a/src/core/etl/src/Flow/ETL/Schema/Validator/StrictValidator.php +++ b/src/core/etl/src/Flow/ETL/Schema/Validator/StrictValidator.php @@ -9,7 +9,7 @@ use Flow\ETL\SchemaValidator; /** - * Matches all entries in the schema, if row comes with any extra entry it will fail validation. + * Matches all columns in the schema, if row comes with any extra column it will fail validation. */ final class StrictValidator implements SchemaValidator { @@ -20,7 +20,7 @@ public function validate(Schema $expected, Schema $given): ValidationContext $unexpectedDefinitions = []; foreach ($expected->definitions() as $expectedDefinition) { - $givenDefinition = $given->findDefinition($expectedDefinition->entry()); + $givenDefinition = $given->findDefinition($expectedDefinition->reference()); if ($givenDefinition === null) { $missingDefinitions[] = $expectedDefinition; @@ -38,7 +38,7 @@ public function validate(Schema $expected, Schema $given): ValidationContext } foreach ($given->definitions() as $givenDefinition) { - if ($expected->findDefinition($givenDefinition->entry()) === null) { + if ($expected->findDefinition($givenDefinition->reference()) === null) { $unexpectedDefinitions[] = $givenDefinition; } } diff --git a/src/core/etl/src/Flow/ETL/Schema/Validator/ValidationContext.php b/src/core/etl/src/Flow/ETL/Schema/Validator/ValidationContext.php index 38fe612012..d55fe2e070 100644 --- a/src/core/etl/src/Flow/ETL/Schema/Validator/ValidationContext.php +++ b/src/core/etl/src/Flow/ETL/Schema/Validator/ValidationContext.php @@ -98,7 +98,7 @@ public function unexpectedDefinitions(): array private function definitionToString(Definition $definition): string { return ( - $definition->entry()->name() + $definition->reference()->name() . '<' . ($definition->isNullable() ? '?' : '') . $definition->type()->toString() diff --git a/src/core/etl/src/Flow/ETL/Transformation/Drop.php b/src/core/etl/src/Flow/ETL/Transformation/Drop.php index f81588bdca..db420e9a5a 100644 --- a/src/core/etl/src/Flow/ETL/Transformation/Drop.php +++ b/src/core/etl/src/Flow/ETL/Transformation/Drop.php @@ -13,9 +13,9 @@ { private References $references; - public function __construct(string|Reference ...$entries) + public function __construct(string|Reference ...$columns) { - $this->references = References::init(...$entries); + $this->references = References::init(...$columns); } public function transform(DataFrame $dataFrame): DataFrame diff --git a/src/core/etl/src/Flow/ETL/Transformation/MaskColumns.php b/src/core/etl/src/Flow/ETL/Transformation/MaskColumns.php index 4e9b7ef37e..a2ff3f3d63 100644 --- a/src/core/etl/src/Flow/ETL/Transformation/MaskColumns.php +++ b/src/core/etl/src/Flow/ETL/Transformation/MaskColumns.php @@ -26,7 +26,7 @@ public function __construct( public function transform(DataFrame $dataFrame): DataFrame { foreach ($this->columns as $column) { - $dataFrame->withEntry($column, lit($this->mask)); + $dataFrame->withColumn($column, lit($this->mask)); } return $dataFrame; diff --git a/src/core/etl/src/Flow/ETL/Transformation/Select.php b/src/core/etl/src/Flow/ETL/Transformation/Select.php index 6e39ec8c4e..9abb7844f6 100644 --- a/src/core/etl/src/Flow/ETL/Transformation/Select.php +++ b/src/core/etl/src/Flow/ETL/Transformation/Select.php @@ -13,9 +13,9 @@ { private References $references; - public function __construct(string|Reference ...$entries) + public function __construct(string|Reference ...$columns) { - $this->references = References::init(...$entries); + $this->references = References::init(...$columns); } public function transform(DataFrame $dataFrame): DataFrame diff --git a/src/core/etl/src/Flow/ETL/Transformer/DerivedColumns.php b/src/core/etl/src/Flow/ETL/Transformer/DerivedColumns.php index 85e014fa4b..fab29ece9f 100644 --- a/src/core/etl/src/Flow/ETL/Transformer/DerivedColumns.php +++ b/src/core/etl/src/Flow/ETL/Transformer/DerivedColumns.php @@ -21,7 +21,7 @@ */ public function declare(Schema $input, Definition $derived): Schema { - $name = $derived->entry()->name(); + $name = $derived->reference()->name(); return $input->findDefinition($name) === null ? $input->add($derived) : $input->replace($name, $derived); } diff --git a/src/core/etl/src/Flow/ETL/Transformer/DropEntriesTransformer.php b/src/core/etl/src/Flow/ETL/Transformer/DropColumnsTransformer.php similarity index 95% rename from src/core/etl/src/Flow/ETL/Transformer/DropEntriesTransformer.php rename to src/core/etl/src/Flow/ETL/Transformer/DropColumnsTransformer.php index fd270b3ec0..394080f2e5 100644 --- a/src/core/etl/src/Flow/ETL/Transformer/DropEntriesTransformer.php +++ b/src/core/etl/src/Flow/ETL/Transformer/DropColumnsTransformer.php @@ -14,7 +14,7 @@ use Flow\ETL\Transformer; use Throwable; -final readonly class DropEntriesTransformer implements Transformer +final readonly class DropColumnsTransformer implements Transformer { private References $refs; diff --git a/src/core/etl/src/Flow/ETL/Transformer/DropDuplicatesTransformer.php b/src/core/etl/src/Flow/ETL/Transformer/DropDuplicatesTransformer.php index 19d5bb805a..9c16906350 100644 --- a/src/core/etl/src/Flow/ETL/Transformer/DropDuplicatesTransformer.php +++ b/src/core/etl/src/Flow/ETL/Transformer/DropDuplicatesTransformer.php @@ -26,17 +26,17 @@ /** * @var array */ - private array $entries; + private array $references; private Algorithm $hashAlgorithm; - public function __construct(string|Reference ...$entries) + public function __construct(string|Reference ...$columns) { - if ([] === $entries) { - throw new InvalidArgumentException('DropDuplicatesTransformer requires at least one entry'); + if ([] === $columns) { + throw new InvalidArgumentException('DropDuplicatesTransformer requires at least one column'); } - $this->entries = $entries; + $this->references = $columns; $this->deduplication = new Hashes(); $this->hashAlgorithm = new NativePHPHash(); } @@ -53,8 +53,8 @@ public function transform(Rows $rows, FlowContext $context): Rows try { $columns = []; - foreach ($this->entries as $entry) { - $name = $entry instanceof Reference ? $entry->base() : $entry; + foreach ($this->references as $reference) { + $name = $reference instanceof Reference ? $reference->base() : $reference; $columns[] = $rows->schema()->findDefinition($name) === null ? [] : $rows->column($name)->values(); } diff --git a/src/core/etl/src/Flow/ETL/Transformer/DuplicateRowTransformer.php b/src/core/etl/src/Flow/ETL/Transformer/DuplicateRowTransformer.php index 5b06777d2d..41e7e78820 100644 --- a/src/core/etl/src/Flow/ETL/Transformer/DuplicateRowTransformer.php +++ b/src/core/etl/src/Flow/ETL/Transformer/DuplicateRowTransformer.php @@ -14,7 +14,7 @@ use Flow\ETL\Rows; use Flow\ETL\Schema; use Flow\ETL\Transformer; -use Flow\ETL\WithEntry; +use Flow\ETL\WithColumn; use Flow\Types\Exception\InvalidTypeException; use Flow\Types\Type\Unifier\NullabilityRule; use Flow\Types\Type\Unifier\PromotingUnifier; @@ -27,9 +27,9 @@ final class DuplicateRowTransformer implements Transformer { /** - * @var list + * @var list */ - private readonly array $entries; + private readonly array $columns; /** * The condition resolved against the bound schema, and the schema this step declares. Only @@ -41,14 +41,14 @@ final class DuplicateRowTransformer implements Transformer public function __construct( private readonly mixed $condition, - WithEntry ...$entries, + WithColumn ...$columns, ) { - $this->entries = array_values($entries); + $this->columns = array_values($columns); } public function bind(Schema $input): BoundStep { - $bound = new self($this->condition, ...$this->entries); + $bound = new self($this->condition, ...$this->columns); $bound->resolved = $this->resolve($input); $bound->output = $this->declare($input); @@ -75,11 +75,11 @@ public function transform(Rows $rows, FlowContext $context): Rows if ($duplicated !== []) { // The maps inside ScalarFunctionTransformer are column-wise and stateless, so applying - // each entry once over all duplicated rows is equivalent to applying it per row. + // each column once over all duplicated rows is equivalent to applying it per row. $copies = $rows->gather($duplicated); - foreach ($this->entries as $entry) { - $copies = (new ScalarFunctionTransformer($entry->name, $entry->function))->transform( + foreach ($this->columns as $column) { + $copies = (new ScalarFunctionTransformer($column->name, $column->function))->transform( $copies, $context, ); @@ -126,9 +126,9 @@ private function declare(Schema $input): Schema { $duplicated = $input; - foreach ($this->entries as $entry) { - (new ExpandingFunctions())->refuse($entry->function, 'duplicateRow'); - $duplicated = (new ScalarFunctionTransformer($entry->name, $entry->function))->bind($duplicated)->output; + foreach ($this->columns as $column) { + (new ExpandingFunctions())->refuse($column->function, 'duplicateRow'); + $duplicated = (new ScalarFunctionTransformer($column->name, $column->function))->bind($duplicated)->output; } $output = $input; @@ -137,7 +137,7 @@ private function declare(Schema $input): Schema $existing = $output->findDefinition($name); if ($existing === null) { - // the entries only apply to rows that matched the condition, so a column the + // the columns only apply to rows that matched the condition, so a column the // untouched half of the batch never carries has to be declared nullable $output = $output->add($definition->makeNullable()); diff --git a/src/core/etl/src/Flow/ETL/Transformer/PruneEntriesTransformer.php b/src/core/etl/src/Flow/ETL/Transformer/PruneColumnsTransformer.php similarity index 93% rename from src/core/etl/src/Flow/ETL/Transformer/PruneEntriesTransformer.php rename to src/core/etl/src/Flow/ETL/Transformer/PruneColumnsTransformer.php index 29037ea755..cba578b43c 100644 --- a/src/core/etl/src/Flow/ETL/Transformer/PruneEntriesTransformer.php +++ b/src/core/etl/src/Flow/ETL/Transformer/PruneColumnsTransformer.php @@ -15,11 +15,11 @@ use Throwable; /** - * Unlike {@see SelectEntriesTransformer}, which throws when a reference is not declared by the + * Unlike {@see SelectColumnsTransformer}, which throws when a reference is not declared by the * schema, prune keeps what is there and silently skips absent references - pruned rows are spilled * to storage, where the pruning is opportunistic rather than a contract. */ -final readonly class PruneEntriesTransformer implements Transformer +final readonly class PruneColumnsTransformer implements Transformer { private References $refs; diff --git a/src/core/etl/src/Flow/ETL/Transformer/Rename/RenameCaseEntryStrategy.php b/src/core/etl/src/Flow/ETL/Transformer/Rename/RenameCaseColumnStrategy.php similarity index 87% rename from src/core/etl/src/Flow/ETL/Transformer/Rename/RenameCaseEntryStrategy.php rename to src/core/etl/src/Flow/ETL/Transformer/Rename/RenameCaseColumnStrategy.php index ec486cc804..d5f9e10727 100644 --- a/src/core/etl/src/Flow/ETL/Transformer/Rename/RenameCaseEntryStrategy.php +++ b/src/core/etl/src/Flow/ETL/Transformer/Rename/RenameCaseColumnStrategy.php @@ -7,7 +7,7 @@ use Flow\ETL\Schema; use Flow\ETL\String\StringStyles; -final readonly class RenameCaseEntryStrategy implements RenameEntryStrategy +final readonly class RenameCaseColumnStrategy implements RenameColumnStrategy { public function __construct( private StringStyles $style, diff --git a/src/core/etl/src/Flow/ETL/Transformer/Rename/RenameEntryStrategy.php b/src/core/etl/src/Flow/ETL/Transformer/Rename/RenameColumnStrategy.php similarity index 90% rename from src/core/etl/src/Flow/ETL/Transformer/Rename/RenameEntryStrategy.php rename to src/core/etl/src/Flow/ETL/Transformer/Rename/RenameColumnStrategy.php index f960ad86c8..aa2d4e0d2d 100644 --- a/src/core/etl/src/Flow/ETL/Transformer/Rename/RenameEntryStrategy.php +++ b/src/core/etl/src/Flow/ETL/Transformer/Rename/RenameColumnStrategy.php @@ -6,7 +6,7 @@ use Flow\ETL\Schema; -interface RenameEntryStrategy +interface RenameColumnStrategy { /** * @return array map of current_name => new_name; PHP casts a numeric name to an int key, empty when nothing is renamed diff --git a/src/core/etl/src/Flow/ETL/Transformer/Rename/RenameMapEntryStrategy.php b/src/core/etl/src/Flow/ETL/Transformer/Rename/RenameMapColumnStrategy.php similarity index 86% rename from src/core/etl/src/Flow/ETL/Transformer/Rename/RenameMapEntryStrategy.php rename to src/core/etl/src/Flow/ETL/Transformer/Rename/RenameMapColumnStrategy.php index 5bf4b3d97a..8d8b80db09 100644 --- a/src/core/etl/src/Flow/ETL/Transformer/Rename/RenameMapEntryStrategy.php +++ b/src/core/etl/src/Flow/ETL/Transformer/Rename/RenameMapColumnStrategy.php @@ -9,7 +9,7 @@ use function array_flip; use function array_intersect_key; -final readonly class RenameMapEntryStrategy implements RenameEntryStrategy +final readonly class RenameMapColumnStrategy implements RenameColumnStrategy { /** * @param array $renames Map of old_name => new_name diff --git a/src/core/etl/src/Flow/ETL/Transformer/Rename/RenameReplaceEntryStrategy.php b/src/core/etl/src/Flow/ETL/Transformer/Rename/RenameReplaceColumnStrategy.php similarity index 89% rename from src/core/etl/src/Flow/ETL/Transformer/Rename/RenameReplaceEntryStrategy.php rename to src/core/etl/src/Flow/ETL/Transformer/Rename/RenameReplaceColumnStrategy.php index 6e653b536d..206c6c5112 100644 --- a/src/core/etl/src/Flow/ETL/Transformer/Rename/RenameReplaceEntryStrategy.php +++ b/src/core/etl/src/Flow/ETL/Transformer/Rename/RenameReplaceColumnStrategy.php @@ -8,7 +8,7 @@ use function str_replace; -final readonly class RenameReplaceEntryStrategy implements RenameEntryStrategy +final readonly class RenameReplaceColumnStrategy implements RenameColumnStrategy { /** * @param array|string $search diff --git a/src/core/etl/src/Flow/ETL/Transformer/RenameEntryTransformer.php b/src/core/etl/src/Flow/ETL/Transformer/RenameColumnTransformer.php similarity index 95% rename from src/core/etl/src/Flow/ETL/Transformer/RenameEntryTransformer.php rename to src/core/etl/src/Flow/ETL/Transformer/RenameColumnTransformer.php index c9f56b1b0d..29d665b24a 100644 --- a/src/core/etl/src/Flow/ETL/Transformer/RenameEntryTransformer.php +++ b/src/core/etl/src/Flow/ETL/Transformer/RenameColumnTransformer.php @@ -12,7 +12,7 @@ use Flow\ETL\Transformer; use Throwable; -final readonly class RenameEntryTransformer implements Transformer +final readonly class RenameColumnTransformer implements Transformer { public function __construct( private string $from, diff --git a/src/core/etl/src/Flow/ETL/Transformer/RenameEachEntryTransformer.php b/src/core/etl/src/Flow/ETL/Transformer/RenameEachColumnTransformer.php similarity index 84% rename from src/core/etl/src/Flow/ETL/Transformer/RenameEachEntryTransformer.php rename to src/core/etl/src/Flow/ETL/Transformer/RenameEachColumnTransformer.php index 73c5e2b8bd..74cff55011 100644 --- a/src/core/etl/src/Flow/ETL/Transformer/RenameEachEntryTransformer.php +++ b/src/core/etl/src/Flow/ETL/Transformer/RenameEachColumnTransformer.php @@ -11,17 +11,17 @@ use Flow\ETL\Rows; use Flow\ETL\Schema; use Flow\ETL\Transformer; -use Flow\ETL\Transformer\Rename\RenameEntryStrategy; +use Flow\ETL\Transformer\Rename\RenameColumnStrategy; use Throwable; -final readonly class RenameEachEntryTransformer implements Transformer +final readonly class RenameEachColumnTransformer implements Transformer { /** - * @var array + * @var array */ private array $strategies; - public function __construct(RenameEntryStrategy ...$strategies) + public function __construct(RenameColumnStrategy ...$strategies) { if ([] === $strategies) { throw new InvalidArgumentException('At least one strategy must be provided.'); @@ -52,7 +52,7 @@ public function transform(Rows $rows, FlowContext $context): Rows // strategies chain, so a later one renames what an earlier one produced foreach ($this->strategies as $strategy) { foreach ($strategy->renames($schema) as $from => $to) { - // a numeric entry name arrives as int - PHP casts numeric-string array keys + // a numeric column name arrives as int - PHP casts numeric-string array keys $schema = $schema->rename((string) $from, $to); } } diff --git a/src/core/etl/src/Flow/ETL/Transformer/ScalarFunctionTransformer.php b/src/core/etl/src/Flow/ETL/Transformer/ScalarFunctionTransformer.php index abc43ffcaa..4db49cfd93 100644 --- a/src/core/etl/src/Flow/ETL/Transformer/ScalarFunctionTransformer.php +++ b/src/core/etl/src/Flow/ETL/Transformer/ScalarFunctionTransformer.php @@ -25,13 +25,13 @@ final readonly class ScalarFunctionTransformer implements Transformer { /** - * @param Definition|string $entry + * @param Definition|string $column * @param null|ScalarFunction $resolved the function resolved against the bound schema * @param null|Definition $derived the column this step declares * @param null|Schema $output the schema this step declares */ public function __construct( - private string|Definition $entry, + private string|Definition $column, public ScalarFunction $function, private ?ScalarFunction $resolved = null, private ?Definition $derived = null, @@ -41,23 +41,23 @@ public function __construct( public function bind(Schema $input): BoundStep { // unpack declares its own columns, so the check comes first - a Definition passed to - // withEntry() cannot describe an N-column result + // withColumn() cannot describe an N-column result if ($this->function instanceof UnpackResults) { $resolved = $this->resolve($input); $output = (new UnpackedColumns())->of( $input, - $this->entryName() . '.', + $this->columnName() . '.', (new UnpackedColumns())->declared($resolved), ); - return new BoundStep(new self($this->entry, $this->function, $resolved, null, $output), $output); + return new BoundStep(new self($this->column, $this->function, $resolved, null, $output), $output); } $resolved = $this->resolve($input); $derived = $this->derived($resolved); $output = (new DerivedColumns())->declare($input, $derived); - return new BoundStep(new self($this->entry, $this->function, $resolved, $derived, $output), $output); + return new BoundStep(new self($this->column, $this->function, $resolved, $derived, $output), $output); } public function transform(Rows $rows, FlowContext $context): Rows @@ -89,9 +89,9 @@ public function transform(Rows $rows, FlowContext $context): Rows */ private function derived(ScalarFunction $source): Definition { - return $this->entry instanceof Definition - ? $this->entry - : definition_from_type($this->entryName(), $source->returns()); + return $this->column instanceof Definition + ? $this->column + : definition_from_type($this->columnName(), $source->returns()); } /** @@ -108,9 +108,9 @@ private function resolve(Schema $input): ScalarFunction return $resolved; } - private function entryName(): string + private function columnName(): string { - return $this->entry instanceof Definition ? $this->entry->entry()->name() : $this->entry; + return $this->column instanceof Definition ? $this->column->reference()->name() : $this->column; } private function map(Rows $rows, FlowContext $context): Rows @@ -124,7 +124,7 @@ private function map(Rows $rows, FlowContext $context): Rows $rows, $declared, $output, - $derived->entry()->name(), + $derived->reference()->name(), $columns->stored($derived, $function->eval($rows, $context), $context->backend()), $context->backend(), ); @@ -136,8 +136,8 @@ private function unpack(Rows $rows, FlowContext $context): Rows $function = $this->resolved ?? $this->resolve($rows->schema()); $declared = (new UnpackedColumns())->declared($function); $columns = new UnpackedColumns(); - $output = $this->output ?? $columns->of($rows->schema(), $this->entryName() . '.', $declared); - $prefix = $this->entryName() . '.'; + $output = $this->output ?? $columns->of($rows->schema(), $this->columnName() . '.', $declared); + $prefix = $this->columnName() . '.'; $values = []; foreach ($declared->definitions() as $name => $_) { diff --git a/src/core/etl/src/Flow/ETL/Transformer/SelectEntriesTransformer.php b/src/core/etl/src/Flow/ETL/Transformer/SelectColumnsTransformer.php similarity index 95% rename from src/core/etl/src/Flow/ETL/Transformer/SelectEntriesTransformer.php rename to src/core/etl/src/Flow/ETL/Transformer/SelectColumnsTransformer.php index 582693946d..dbdb50c649 100644 --- a/src/core/etl/src/Flow/ETL/Transformer/SelectEntriesTransformer.php +++ b/src/core/etl/src/Flow/ETL/Transformer/SelectColumnsTransformer.php @@ -14,7 +14,7 @@ use Flow\ETL\Transformer; use Throwable; -final readonly class SelectEntriesTransformer implements Transformer +final readonly class SelectColumnsTransformer implements Transformer { private References $refs; diff --git a/src/core/etl/src/Flow/ETL/Transformer/SerializeTransformer.php b/src/core/etl/src/Flow/ETL/Transformer/SerializeTransformer.php index b5090081b1..5ebbb99377 100644 --- a/src/core/etl/src/Flow/ETL/Transformer/SerializeTransformer.php +++ b/src/core/etl/src/Flow/ETL/Transformer/SerializeTransformer.php @@ -47,7 +47,7 @@ public function transform(Rows $rows, FlowContext $context): Rows try { $target = $this->target instanceof Reference ? $this->target : ref($this->target); - // base64 keeps serialized rows text-safe inside string entries, no matter which serializer is configured + // base64 keeps serialized rows text-safe inside string columns, no matter which serializer is configured $serializer = new Base64Serializer($context->config->serializer()); $inputSchema = $rows->schema(); diff --git a/src/core/etl/src/Flow/ETL/Transformer/UnpackedColumns.php b/src/core/etl/src/Flow/ETL/Transformer/UnpackedColumns.php index 00a99b2c74..a82d7d35aa 100644 --- a/src/core/etl/src/Flow/ETL/Transformer/UnpackedColumns.php +++ b/src/core/etl/src/Flow/ETL/Transformer/UnpackedColumns.php @@ -49,7 +49,7 @@ public function of(Schema $base, string $prefix, Schema $declared): Schema $output = $base; foreach ($declared->makeNullable()->definitions() as $definition) { - $name = $prefix . $definition->entry()->name(); + $name = $prefix . $definition->reference()->name(); $output = $output->findDefinition($name) === null ? $output->add($definition->rename($name)) diff --git a/src/core/etl/src/Flow/ETL/Transformer/UnserializeTransformer.php b/src/core/etl/src/Flow/ETL/Transformer/UnserializeTransformer.php index 3f6849fb3c..dbcd1b4173 100644 --- a/src/core/etl/src/Flow/ETL/Transformer/UnserializeTransformer.php +++ b/src/core/etl/src/Flow/ETL/Transformer/UnserializeTransformer.php @@ -44,7 +44,7 @@ public function transform(Rows $rows, FlowContext $context): Rows try { $source = $this->source instanceof Reference ? $this->source : ref($this->source); - // base64 keeps serialized rows text-safe inside string entries, no matter which serializer is configured + // base64 keeps serialized rows text-safe inside string columns, no matter which serializer is configured $serializer = new Base64Serializer($context->config->serializer()); // a payload that fails to decode still has to produce the declared shape, so every declared @@ -55,8 +55,8 @@ public function transform(Rows $rows, FlowContext $context): Rows $outputNames = []; foreach ($this->target->definitions() as $definition) { - $names[] = $definition->entry()->name(); - $outputNames[] = $prefix . $definition->entry()->name(); + $names[] = $definition->reference()->name(); + $outputNames[] = $prefix . $definition->reference()->name(); } $decoder = SerializedPayloadDecoder::of($source, $serializer, $names, $prefix); diff --git a/src/core/etl/src/Flow/ETL/WithEntry.php b/src/core/etl/src/Flow/ETL/WithColumn.php similarity index 86% rename from src/core/etl/src/Flow/ETL/WithEntry.php rename to src/core/etl/src/Flow/ETL/WithColumn.php index 69129e35b0..537c496749 100644 --- a/src/core/etl/src/Flow/ETL/WithEntry.php +++ b/src/core/etl/src/Flow/ETL/WithColumn.php @@ -6,7 +6,7 @@ use Flow\ETL\Function\ScalarFunction; -final readonly class WithEntry +final readonly class WithColumn { public function __construct( public string $name, diff --git a/src/core/etl/src/Flow/Floe/FrameEncoder.php b/src/core/etl/src/Flow/Floe/FrameEncoder.php index d9c0415c0f..05e3875821 100644 --- a/src/core/etl/src/Flow/Floe/FrameEncoder.php +++ b/src/core/etl/src/Flow/Floe/FrameEncoder.php @@ -35,7 +35,7 @@ public function encode(Rows $rows): string $bufferCount = 0; foreach ($rows->schema()->definitions() as $definition) { - $column = $rows->column($definition->entry()->name()); + $column = $rows->column($definition->reference()->name()); $buffers = $column->encode(); $columnNodes = $this->layout->nodeCount($definition->type()) === 1 diff --git a/src/core/etl/tests/Flow/ETL/Tests/Context/WindowFrameContext.php b/src/core/etl/tests/Flow/ETL/Tests/Context/WindowFrameContext.php index 35cb55e87f..bff2263fbd 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Context/WindowFrameContext.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Context/WindowFrameContext.php @@ -48,7 +48,7 @@ public static function salaries(WindowFunction $function): array ['id' => 4, 'department' => 'IT', 'date' => '2024-01-04', 'salary' => 400], ['id' => 5, 'department' => 'IT', 'date' => '2024-01-05', 'salary' => 500], ])) - ->withEntry('result', $function), + ->withColumn('result', $function), ); } @@ -67,7 +67,7 @@ public static function tiedDates(WindowFunction $function): array ['id' => 3, 'department' => 'IT', 'date' => '2024-01-02', 'salary' => 300], ['id' => 4, 'department' => 'IT', 'date' => '2024-01-03', 'salary' => 400], ])) - ->withEntry('result', $function), + ->withColumn('result', $function), ); } } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Context/WindowProcessorContext.php b/src/core/etl/tests/Flow/ETL/Tests/Context/WindowProcessorContext.php index b8a97fffc5..495665ddbd 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Context/WindowProcessorContext.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Context/WindowProcessorContext.php @@ -16,11 +16,11 @@ final class WindowProcessorContext /** * Rows the processor produced, as arrays. * - * @param Definition|string $entry + * @param Definition|string $column * * @return list */ - public static function batches(string|Definition $entry, WindowFunction $function, Rows $rows): array + public static function batches(string|Definition $column, WindowFunction $function, Rows $rows): array { $input = (static function () use ($rows) { yield $rows; @@ -28,7 +28,7 @@ public static function batches(string|Definition $entry, WindowFunction $functio $batches = []; - foreach ((new WindowProcessor($entry, $function))->process($input, flow_context()) as $batch) { + foreach ((new WindowProcessor($column, $function))->process($input, flow_context()) as $batch) { $batches[] = $batch; } @@ -36,18 +36,18 @@ public static function batches(string|Definition $entry, WindowFunction $functio } /** - * Values the processor wrote into $entry, in partition-processing order. + * Values the processor wrote into $column, in partition-processing order. * - * @param Definition|string $entry + * @param Definition|string $column * * @return list */ - public static function values(string|Definition $entry, WindowFunction $function, Rows $rows): array + public static function values(string|Definition $column, WindowFunction $function, Rows $rows): array { - $name = $entry instanceof Definition ? $entry->entry()->name() : $entry; + $name = $column instanceof Definition ? $column->reference()->name() : $column; $values = []; - foreach (self::batches($entry, $function, $rows) as $batch) { + foreach (self::batches($column, $function, $rows) as $batch) { foreach ($batch->toArray() as $row) { $values[] = $row[$name]; } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Double/AddStampToStringEntryTransformer.php b/src/core/etl/tests/Flow/ETL/Tests/Double/AddStampToStringColumnTransformer.php similarity index 71% rename from src/core/etl/tests/Flow/ETL/Tests/Double/AddStampToStringEntryTransformer.php rename to src/core/etl/tests/Flow/ETL/Tests/Double/AddStampToStringColumnTransformer.php index a5d481fde4..e9c9dcfc68 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Double/AddStampToStringEntryTransformer.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Double/AddStampToStringColumnTransformer.php @@ -14,10 +14,10 @@ use function Flow\Types\DSL\type_string; use function sprintf; -final readonly class AddStampToStringEntryTransformer implements Transformer +final readonly class AddStampToStringColumnTransformer implements Transformer { public function __construct( - private string $entryName, + private string $columnName, private string $stamp, private string $divider, ) {} @@ -27,9 +27,9 @@ public function bind(Schema $input): BoundStep return new BoundStep($this, $input); } - public static function divideBySemicolon(string $entryName, string $stamp): self + public static function divideBySemicolon(string $columnName, string $stamp): self { - return new self($entryName, $stamp, ':'); + return new self($columnName, $stamp, ':'); } public function transform(Rows $rows, FlowContext $context): Rows @@ -39,9 +39,9 @@ public function transform(Rows $rows, FlowContext $context): Rows for ($i = 0; $i < $rows->count(); $i++) { $stamped[] = [ ...$rows->values($i), - $this->entryName => sprintf( + $this->columnName => sprintf( '%s%s%s', - type_string()->assert($rows->column($this->entryName)->value($i)), + type_string()->assert($rows->column($this->columnName)->value($i)), $this->divider, $this->stamp, ), diff --git a/src/core/etl/tests/Flow/ETL/Tests/Double/ForeignTypeDefinition.php b/src/core/etl/tests/Flow/ETL/Tests/Double/ForeignTypeDefinition.php index 1ffa4c54ac..47c0fa32d4 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Double/ForeignTypeDefinition.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Double/ForeignTypeDefinition.php @@ -29,7 +29,7 @@ public function addMetadata(string $key, int|string|bool|float|array $value): st return $this; } - public function entry(): Reference + public function reference(): Reference { return ref($this->name); } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/BatchByTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/BatchByTest.php index 284ee2d73c..d01ca1cd1f 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/BatchByTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/BatchByTest.php @@ -137,7 +137,7 @@ public function test_batch_by_with_transformations(): void ['order_id' => 2, 'amount' => 300], ])) ->batchBy('order_id') - ->withEntry('total', ref('amount')->multiply(lit(2))) + ->withColumn('total', ref('amount')->multiply(lit(2))) ->forEach(static function ($rows) use (&$results): void { $results = array_merge($results, $rows->toArray()); }); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/BranchingTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/BranchingTest.php index 58f2fb8c74..29ff6c9e39 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/BranchingTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/BranchingTest.php @@ -35,7 +35,7 @@ public function test_a_branch_transformation_builds_on_the_columns_it_is_fed(): ->write(to_branch( ref('group')->equals(lit('A')), to_memory($memory = new ArrayMemory()), - )->withTransformation(new CallbackTransformation(static fn(DataFrame $dataFrame): DataFrame => $dataFrame->withEntry( + )->withTransformation(new CallbackTransformation(static fn(DataFrame $dataFrame): DataFrame => $dataFrame->withColumn( 'group_name', lit('A'), )))) @@ -188,7 +188,7 @@ public function test_branching_with_transformation(): void )->withTransformation(new class implements Transformation { public function transform(DataFrame $dataFrame): DataFrame { - return $dataFrame->withEntry('group_name', lit('A')); + return $dataFrame->withColumn('group_name', lit('A')); } })) ->write(to_branch( @@ -197,7 +197,7 @@ public function transform(DataFrame $dataFrame): DataFrame )->withTransformation(new class implements Transformation { public function transform(DataFrame $dataFrame): DataFrame { - return $dataFrame->withEntry('group_name', lit('BC')); + return $dataFrame->withColumn('group_name', lit('BC')); } })) ->run(); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/DuplicateRowTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/DuplicateRowTest.php index 35065dad48..6f7823715a 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/DuplicateRowTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/DuplicateRowTest.php @@ -10,7 +10,7 @@ use function Flow\ETL\DSL\from_array; use function Flow\ETL\DSL\lit; use function Flow\ETL\DSL\ref; -use function Flow\ETL\DSL\with_entry; +use function Flow\ETL\DSL\with_column; final class DuplicateRowTest extends FlowTestCase { @@ -24,7 +24,7 @@ public function test_duplicating_rows(): void ])) ->duplicateRow( condition: ref('status')->equals('inactive'), - entries: with_entry('amount', ref('amount')->multiply(lit(-1))), + columns: with_column('amount', ref('amount')->multiply(lit(-1))), ) ->fetch() ->toArray(); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/EmptySourceTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/EmptySourceTest.php index 013b294aa2..247f1bad37 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/EmptySourceTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/EmptySourceTest.php @@ -60,7 +60,7 @@ public function test_from_array_without_rows_refuses_to_infer(): void . '->withSchema(...).', ); - df()->read(from_array([]))->withEntry('status', ref('response_status_code'))->fetch(); + df()->read(from_array([]))->withColumn('status', ref('response_status_code'))->fetch(); } public function test_a_missing_column_in_non_empty_input_still_fails(): void diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/GroupByTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/GroupByTest.php index ec56dd24e6..e8b4bd4767 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/GroupByTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/GroupByTest.php @@ -174,7 +174,7 @@ public function test_group_by_multiple_columns_and_batch_size(): void ))) ->groupBy(['country', 'gender']) ->aggregate(average(ref('age'))) - ->withEntry('age_avg', ref('age_avg')->round(lit(2))) + ->withColumn('age_avg', ref('age_avg')->round(lit(2))) ->batchSize(1) ->write($loader) ->fetch(); @@ -794,10 +794,10 @@ public function test_window_avg_function(): void ], df() ->from(from_all(from_memory($memoryPage1), from_memory($memoryPage2))) - ->withEntry('avg_salary', average(ref('salary'))->over(window()->partitionBy(ref('department')))) + ->withColumn('avg_salary', average(ref('salary'))->over(window()->partitionBy(ref('department')))) ->select('department', 'avg_salary') ->dropDuplicates(ref('department'), ref('avg_salary')) - ->withEntry('avg_salary', ref('avg_salary')->round(lit(0))) + ->withColumn('avg_salary', ref('avg_salary')->round(lit(0))) ->fetch() ->toArray(), ); @@ -841,7 +841,7 @@ public function test_window_rank_function(): void df() ->from(from_all(from_memory($memoryPage1), from_memory($memoryPage2))) ->dropDuplicates(ref('employee_name'), ref('department')) - ->withEntry( + ->withColumn( 'rank', rank()->over(window()->partitionBy(ref('department'))->orderBy(ref('salary')->desc())), ) diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/LimitTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/LimitTest.php index 96f93dc591..09518661c9 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/LimitTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/LimitTest.php @@ -217,7 +217,7 @@ public function statistics(): Statistics return new Statistics(); } }) - ->withEntries([ + ->withColumns([ 'expanded' => ref('ids')->expand(), 'element' => ref('expanded')->unpack(schema( int_schema('id'), diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/MathTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/MathTest.php index d2dbf89cca..0b63ab4e11 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/MathTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/MathTest.php @@ -71,8 +71,8 @@ public function test_mathematical_operations_on_floats(): void ], schema(integer_schema('id'), float_schema('price'), integer_schema('quantity'), float_schema('weight')), ))) - ->withEntry('discount', ref('price')->multiply(-0.1, exact: true)) - ->withEntry('total_weight', ref('weight')->multiply(ref('quantity'), exact: true)) + ->withColumn('discount', ref('price')->multiply(-0.1, exact: true)) + ->withColumn('total_weight', ref('weight')->multiply(ref('quantity'), exact: true)) ->forEach(static function (Rows $r) use (&$rows): void { $rows = $rows->isEmpty() ? $r : $rows->concat(new PhpBackend(), $r); }); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/OffsetTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/OffsetTest.php index 914325adce..d12951cd86 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/OffsetTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/OffsetTest.php @@ -254,7 +254,7 @@ public function statistics(): Statistics return new Statistics(); } }) - ->withEntries([ + ->withColumns([ 'expanded' => ref('ids')->expand(), 'element' => ref('expanded')->unpack(schema(int_schema('id'))), ]) @@ -342,7 +342,7 @@ public function test_offset_with_transformations(): void { $rows = df() ->read(from_array(array_map(static fn(int $id): array => ['id' => $id, 'value' => $id * 2], range(1, 10)))) - ->withEntry('sum', ref('id')->plus(ref('value'))) + ->withColumn('sum', ref('id')->plus(ref('value'))) ->offset(3) ->fetch(); static::assertCount(7, $rows); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/PartitioningTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/PartitioningTest.php index b62bd6a0d2..d0093cd72b 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/PartitioningTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/PartitioningTest.php @@ -309,7 +309,7 @@ public function test_pruning_multiple_partitions(): void ->filter(ref('month')->cast('int')->greaterThanEqual(lit(1))) ->filter(ref('day')->cast('int')->lessThan(lit(3))) ->filter(ref('text')->notEquals(lit('something'))) - ->withEntry('day', ref('day')->cast('int')) + ->withColumn('day', ref('day')->cast('int')) ->collect() ->fetch(); @@ -362,7 +362,7 @@ public function test_pruning_single_partition(): void ) ->collect() ->select('year') - ->withEntry('year', ref('year')->cast('int')) + ->withColumn('year', ref('year')->cast('int')) ->groupBy([ref('year')]) ->aggregate(collect(ref('year'))) ->fetch(); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/PlanBindTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/PlanBindTest.php index 40b8745285..825042d8cb 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/PlanBindTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/PlanBindTest.php @@ -39,7 +39,7 @@ use function Flow\ETL\DSL\sum; use function Flow\ETL\DSL\to_memory; use function Flow\ETL\DSL\window; -use function Flow\ETL\DSL\with_entry; +use function Flow\ETL\DSL\with_column; final class PlanBindTest extends FlowTestCase { @@ -79,20 +79,20 @@ public static function plans(): Generator static fn(): DataFrame => df()->read(from_array(self::ROWS))->dropDuplicates(ref('group')), ]; - yield 'withEntry' => [ - static fn(): DataFrame => df()->read(from_array(self::ROWS))->withEntry('upper', ref('name')->upper()), + yield 'withColumn' => [ + static fn(): DataFrame => df()->read(from_array(self::ROWS))->withColumn('upper', ref('name')->upper()), ]; yield 'unpack' => [ static fn(): DataFrame => df() ->read(from_array(self::ROWS)) - ->withEntry('p', ref('payload')->unpack(schema(str_schema('colour'), int_schema('size')))), + ->withColumn('p', ref('payload')->unpack(schema(str_schema('colour'), int_schema('size')))), ]; yield 'duplicateRow' => [ static fn(): DataFrame => df() ->read(from_array(self::ROWS)) - ->duplicateRow(lit(true), with_entry('id', ref('id')->multiply(lit(-1)))), + ->duplicateRow(lit(true), with_column('id', ref('id')->multiply(lit(-1)))), ]; yield 'crossJoin' => [ @@ -129,7 +129,7 @@ public static function plans(): Generator yield 'window' => [ static fn(): DataFrame => df() ->read(from_array(self::ROWS)) - ->withEntry('position', rank()->over(window()->partitionBy(ref('group'))->orderBy(ref('amount')))), + ->withColumn('position', rank()->over(window()->partitionBy(ref('group'))->orderBy(ref('amount')))), ]; yield 'sortBy' => [static fn(): DataFrame => df()->read(from_array(self::ROWS))->sortBy(ref('amount'))]; @@ -224,7 +224,7 @@ public function test_an_unresolved_column_is_refused_at_bind(): void $extractor = new CountingExtractor(schema(int_schema('a'), int_schema('b'))); $this->expectException(SchemaDefinitionNotFoundException::class); - $this->expectExceptionMessage('Schema definition for entry "nope" not found'); + $this->expectExceptionMessage('Schema definition for column "nope" not found'); try { df()->read($extractor)->select('nope')->fetch(); @@ -243,13 +243,13 @@ public function test_both_orderings_refuse_the_undeclared_path_segment(): void try { if ($order === 'get-then-select') { $df - ->withEntry('g', array_get(ref('s'), 'typo')) + ->withColumn('g', array_get(ref('s'), 'typo')) ->select('nope') ->schema(); } else { $df ->select('nope') - ->withEntry('g', array_get(ref('s'), 'typo')) + ->withColumn('g', array_get(ref('s'), 'typo')) ->schema(); } } catch (Throwable $e) { @@ -380,7 +380,7 @@ public function test_unpack_declares_its_columns_at_bind(): void $schema = df() ->read($extractor) - ->withEntry('p', ref('payload')->unpack(schema(str_schema('colour'), int_schema('size')))) + ->withColumn('p', ref('payload')->unpack(schema(str_schema('colour'), int_schema('size')))) ->schema(); static::assertSame(['id', 'payload', 'p.colour', 'p.size'], $schema->references()->names()); @@ -406,7 +406,7 @@ public function test_the_declared_schema_is_the_produced_schema_across_a_chain_o ['id' => 1, 'name' => 'a', 'when' => new DateTimeImmutable('2024-01-01')], ['id' => 2, 'name' => 'b', 'when' => new DateTimeImmutable('2024-01-02')], ])) - ->withEntry('upper', ref('name')->upper()) + ->withColumn('upper', ref('name')->upper()) ->drop('when') ->select('id', 'upper'); @@ -432,7 +432,7 @@ public function test_the_plan_answers_a_row_less_source_with_its_declared_column ['a', 'b'], df() ->read(from_rows(rows(schema(int_schema('a'), int_schema('b'))))) - ->withEntry('b', ref('a')->plus(lit(1))) + ->withColumn('b', ref('a')->plus(lit(1))) ->fetch() ->schema() ->references() diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/RenameTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/RenameTest.php index 452c86520d..bbef8bbc19 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/RenameTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/RenameTest.php @@ -81,7 +81,7 @@ public function test_rename_all(): void $ds = df() ->read(from_rows($rows)) - ->withEntry( + ->withColumn( 'row', ref('array')->unpack(schema(int_schema('id'), str_schema('name'), bool_schema('active'))), ) @@ -143,7 +143,7 @@ public function test_rename_all_multiple(): void $ds = df() ->read(from_rows($rows)) - ->withEntry( + ->withColumn( 'row', ref('array')->unpack(schema(int_schema('id'), str_schema('name'), bool_schema('isActive'))), ) diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/ReplaceNullsTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/ReplaceNullsTest.php index 4966377757..a650998a34 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/ReplaceNullsTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/ReplaceNullsTest.php @@ -27,7 +27,7 @@ public function test_replacing_null_lists_with_an_empty_list(): void ['id' => 2, 'tags' => null], ['id' => 3, 'tags' => ['D']], ])->withSchema(schema(int_schema('id'), list_schema('tags', type_list(type_string()), true)))) - ->withEntry('tags', coalesce(ref('tags'), lit([]))) + ->withColumn('tags', coalesce(ref('tags'), lit([]))) ->fetch(); static::assertEquals( @@ -48,7 +48,7 @@ public function test_replacing_null_strings_with_a_default(): void ['id' => 2, 'name' => null], ['id' => 3, 'name' => 'Doe'], ])) - ->withEntry('name', coalesce(ref('name'), lit('N/A'))) + ->withColumn('name', coalesce(ref('name'), lit('N/A'))) ->fetch(); static::assertEquals( diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/SinkRootBlockingOperationsTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/SinkRootBlockingOperationsTest.php index 39a3f134f3..7657c2ce3b 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/SinkRootBlockingOperationsTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/SinkRootBlockingOperationsTest.php @@ -308,7 +308,7 @@ public function test_row_number_inside_a_transformation_numbers_the_whole_stream { // An unpartitioned window covers the stream, so the numbering runs 1..6 over the ordered rows. $spy = new SpyLoader(); - $numberByValue = new CallbackTransformation(static fn(DataFrame $df): DataFrame => $df->withEntry( + $numberByValue = new CallbackTransformation(static fn(DataFrame $df): DataFrame => $df->withColumn( 'rn', row_number()->over(window()->orderBy(ref('v'))), )); @@ -383,7 +383,7 @@ public function test_window_partition_by_inside_a_transformation_covers_the_whol { // Each partition holds every row of its group across the stream, so the averages are the group averages. $spy = new SpyLoader(); - $averageOverGroup = new CallbackTransformation(static fn(DataFrame $df): DataFrame => $df->withEntry( + $averageOverGroup = new CallbackTransformation(static fn(DataFrame $df): DataFrame => $df->withColumn( 'avg', average(ref('v'))->over(window()->partitionBy(ref('g'))), )); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/SinkRootTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/SinkRootTest.php index 726a8895fd..d1344a4d60 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/SinkRootTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/SinkRootTest.php @@ -264,7 +264,7 @@ public function test_an_unresolved_column_inside_a_transformation_fails_when_the static::fail('Expected the plan to refuse to bind the sink root against the prefix shape.'); } catch (SchemaDefinitionNotFoundException $e) { - static::assertSame('Schema definition for entry "nope" not found.', $e->getMessage()); + static::assertSame('Schema definition for column "nope" not found.', $e->getMessage()); } static::assertSame(0, $sink->loadsCount); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/SortTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/SortTest.php index 18d60f8ec9..7baa4a053b 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/SortTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/SortTest.php @@ -81,7 +81,7 @@ public function test_sorting_by_an_arithmetic_column_does_not_break_the_spill_sc ['id' => 2, 'price' => 2.0], ['id' => 3, 'price' => 2.2], ])) - ->withEntry('total', ref('price')->multiply(lit(2))) + ->withColumn('total', ref('price')->multiply(lit(2))) ->sortBy([ref('total')]) ->fetch(); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/TelemetryTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/TelemetryTest.php index 4221e6a2ce..000e529007 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/TelemetryTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/TelemetryTest.php @@ -44,7 +44,7 @@ use function Flow\ETL\DSL\to_array; use function Flow\ETL\DSL\to_branch; use function Flow\ETL\DSL\to_transformation; -use function Flow\ETL\DSL\with_entry; +use function Flow\ETL\DSL\with_column; use function Flow\Types\DSL\type_map; use function Flow\Types\DSL\type_string; use function in_array; @@ -286,7 +286,7 @@ public function test_dataframe_transformations_traced_when_enabled(): void ['id' => 1, 'name' => 'John'], ['id' => 2, 'name' => 'Jane'], ])) - ->withEntry('upper_name', ref('name')->upper()) + ->withColumn('upper_name', ref('name')->upper()) ->limit(10) ->run(); @@ -323,7 +323,7 @@ public function test_duplicate_row_transformer_exports_nested_spans_once(): void $output = []; df($context->config) ->read(from_array([['id' => 1], ['id' => 2]])->withBatchSize(1)) - ->duplicateRow(condition: lit(true), entries: with_entry('id', ref('id')->multiply(lit(-1)))) + ->duplicateRow(condition: lit(true), columns: with_column('id', ref('id')->multiply(lit(-1)))) ->write(to_array($output)) ->run(); @@ -397,11 +397,11 @@ public function test_limit_reached_is_logged_without_exception_attribute(): void df($context->config)->read(from_array($rows))->limit(5)->run(); - $entries = $context->logs->entriesContaining('Limit reached'); + $logEntries = $context->logs->entriesContaining('Limit reached'); - static::assertCount(1, $entries); - static::assertFalse($entries[0]->record->attributes->has('limit_exception')); - static::assertSame(5, $entries[0]->record->attributes->get('limit')); + static::assertCount(1, $logEntries); + static::assertFalse($logEntries[0]->record->attributes->has('limit_exception')); + static::assertSame(5, $logEntries[0]->record->attributes->get('limit')); } public function test_telemetry_disabled_by_default_uses_void_providers(): void @@ -500,12 +500,12 @@ public function test_until_condition_is_logged_without_exception_attribute(): vo ->until(ref('id')->lessThan(lit(5))) ->run(); - $entries = $context->logs->entriesContaining('Limit reached'); + $logEntries = $context->logs->entriesContaining('Limit reached'); - static::assertCount(1, $entries); - static::assertFalse($entries[0]->record->attributes->has('limit_exception')); + static::assertCount(1, $logEntries); + static::assertFalse($logEntries[0]->record->attributes->has('limit_exception')); // UntilTransformer has no limit to report and throws LimitReachedException(0). - static::assertSame(0, $entries[0]->record->attributes->get('limit')); + static::assertSame(0, $logEntries[0]->record->attributes->get('limit')); } public function test_a_join_builds_one_balanced_dataframe_span_per_run(): void diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/TransformTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/TransformTest.php index 0ff5a2b35e..6978ce346e 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/TransformTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/TransformTest.php @@ -10,11 +10,11 @@ use function Flow\ETL\DSL\from_array; use function Flow\ETL\DSL\lit; use function Flow\ETL\DSL\ref; -use function Flow\ETL\DSL\with_entry; +use function Flow\ETL\DSL\with_column; final class TransformTest extends FlowTestCase { - public function test_transform_with_entries(): void + public function test_transform_with_columns(): void { $rows = df() ->read(from_array([ @@ -22,8 +22,8 @@ public function test_transform_with_entries(): void ['id' => 2, 'status' => 'inactive', 'amount' => 250], ['id' => 3, 'status' => 'active', 'amount' => 1_000], ])) - ->transform(with_entry('amount', ref('amount')->divide(100, scale: 2))) - ->transform(with_entry('currency', lit('PLN'))) + ->transform(with_column('amount', ref('amount')->divide(100, scale: 2))) + ->transform(with_column('currency', lit('PLN'))) ->fetch() ->toArray(); @@ -37,7 +37,7 @@ public function test_transform_with_entries(): void ); } - public function test_with_entries(): void + public function test_with_columns(): void { $rows = df() ->read(from_array([ @@ -45,7 +45,7 @@ public function test_with_entries(): void ['id' => 2, 'status' => 'inactive', 'amount' => 250], ['id' => 3, 'status' => 'active', 'amount' => 1_000], ])) - ->withEntries([ + ->withColumns([ 'amount' => ref('amount')->divide(100, scale: 2), 'currency' => lit('PLN'), ]) @@ -62,7 +62,7 @@ public function test_with_entries(): void ); } - public function test_with_entries_object_oriented(): void + public function test_with_columns_object_oriented(): void { $rows = df() ->read(from_array([ @@ -70,9 +70,9 @@ public function test_with_entries_object_oriented(): void ['id' => 2, 'status' => 'inactive', 'amount' => 250], ['id' => 3, 'status' => 'active', 'amount' => 1_000], ])) - ->withEntries([ - with_entry('amount', ref('amount')->divide(100, scale: 2)), - with_entry('currency', lit('PLN')), + ->withColumns([ + with_column('amount', ref('amount')->divide(100, scale: 2)), + with_column('currency', lit('PLN')), ]) ->fetch() ->toArray(); @@ -87,7 +87,7 @@ public function test_with_entries_object_oriented(): void ); } - public function test_with_entry(): void + public function test_with_column(): void { $rows = df() ->read(from_array([ @@ -95,8 +95,8 @@ public function test_with_entry(): void ['id' => 2, 'status' => 'inactive', 'amount' => 250], ['id' => 3, 'status' => 'active', 'amount' => 1_000], ])) - ->withEntry('amount', ref('amount')->divide(100, scale: 2)) - ->withEntry('currency', lit('PLN')) + ->withColumn('amount', ref('amount')->divide(100, scale: 2)) + ->withColumn('currency', lit('PLN')) ->fetch() ->toArray(); @@ -111,7 +111,7 @@ public function test_with_entry(): void ); } - public function test_with_with_entries(): void + public function test_with_with_columns(): void { $rows = df() ->read(from_array([ @@ -119,8 +119,8 @@ public function test_with_with_entries(): void ['id' => 2, 'status' => 'inactive', 'amount' => 250], ['id' => 3, 'status' => 'active', 'amount' => 1_000], ])) - ->with(with_entry('amount', ref('amount')->divide(100, scale: 2))) - ->with(with_entry('currency', lit('PLN'))) + ->with(with_column('amount', ref('amount')->divide(100, scale: 2))) + ->with(with_column('currency', lit('PLN'))) ->fetch() ->toArray(); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/WithColumnTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/WithColumnTest.php new file mode 100644 index 0000000000..efcfe91f85 --- /dev/null +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/DataFrame/WithColumnTest.php @@ -0,0 +1,66 @@ + 1, 'c' => 1, 'd' => 2]], + df() + ->read(from_array([['a' => 1]])) + // @mago-expect analysis:deprecated-method + ->withEntries(['c' => lit(1), with_column('d', lit(2))]) + ->fetch() + ->toArray(), + ); + } + + public function test_deprecated_with_entry_delegates_to_with_column(): void + { + static::assertSame( + [['a' => 1, 'b' => 2, 'c' => 3]], + df() + ->read(from_array([['a' => 1, 'b' => 2]])) + // @mago-expect analysis:deprecated-method + ->withEntry('c', ref('a')->plus(ref('b'))) + ->fetch() + ->toArray(), + ); + } + + public function test_with_column_adds_column(): void + { + static::assertSame( + [['a' => 1, 'b' => 2, 'c' => 3]], + df() + ->read(from_array([['a' => 1, 'b' => 2]])) + ->withColumn('c', ref('a')->plus(ref('b'))) + ->fetch() + ->toArray(), + ); + } + + public function test_with_columns_accepts_named_functions_and_with_column(): void + { + static::assertSame( + [['a' => 1, 'c' => 1, 'd' => 2]], + df() + ->read(from_array([['a' => 1]])) + ->withColumns(['c' => lit(1), with_column('d', lit(2))]) + ->fetch() + ->toArray(), + ); + } +} diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/AddDynamicEntriesTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/AddDynamicColumnsTest.php similarity index 85% rename from src/core/etl/tests/Flow/ETL/Tests/Integration/Function/AddDynamicEntriesTest.php rename to src/core/etl/tests/Flow/ETL/Tests/Integration/Function/AddDynamicColumnsTest.php index 23625a0fb2..42cf6d1966 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/AddDynamicEntriesTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/AddDynamicColumnsTest.php @@ -13,7 +13,7 @@ use function Flow\ETL\DSL\lit; use function Flow\ETL\DSL\to_memory; -final class AddDynamicEntriesTest extends FlowTestCase +final class AddDynamicColumnsTest extends FlowTestCase { public function test_adding_new_entries(): void { @@ -22,7 +22,7 @@ public function test_adding_new_entries(): void ['id' => 1], ['id' => 2], ])) - ->withEntry('updated_at', lit(new DateTimeImmutable('2020-01-01 00:00:00 UTC'))) + ->withColumn('updated_at', lit(new DateTimeImmutable('2020-01-01 00:00:00 UTC'))) ->write(to_memory($memory = new ArrayMemory())) ->run(); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/AddJsonTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/AddJsonTest.php index 1c8ab8755c..e124f2f578 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/AddJsonTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/AddJsonTest.php @@ -21,7 +21,7 @@ public function test_add_json_into_existing_reference(): void { data_frame() ->read(from_array([['id' => 1, 'array' => ['a' => 1, 'b' => 2, 'c' => 3]]])) - ->withEntry('array', ref('array')->arrayMerge(lit(['d' => 4]))) + ->withColumn('array', ref('array')->arrayMerge(lit(['d' => 4]))) ->write(to_memory($memory = new ArrayMemory())) ->run(); @@ -37,8 +37,8 @@ public function test_add_json_string_into_existing_reference(): void { data_frame() ->read(from_array([['id' => 1, 'array' => ['a' => 1, 'b' => 2, 'c' => 3]]])) - ->withEntry('json', lit('{"d": 4}')) - ->withEntry('array', ref('array')->arrayMerge(ref('json')->jsonDecode())) + ->withColumn('json', lit('{"d": 4}')) + ->withColumn('array', ref('array')->arrayMerge(ref('json')->jsonDecode())) ->drop('json') ->write(to_memory($memory = new ArrayMemory())) ->run(); @@ -55,8 +55,8 @@ public function test_adding_json_as_object_from_string_entry(): void { data_frame() ->read(from_array([['id' => 1]])) - ->withEntry('json', lit(['id' => 1, 'name' => 'test'])) - ->withEntry('json', ref('json')->jsonEncode(JSON_FORCE_OBJECT)) + ->withColumn('json', lit(['id' => 1, 'name' => 'test'])) + ->withColumn('json', ref('json')->jsonEncode(JSON_FORCE_OBJECT)) ->write(to_memory($memory = new ArrayMemory())) ->run(); @@ -75,7 +75,7 @@ public function test_adding_json_from_string_entry(): void { data_frame() ->read(from_array([['id' => 1]])) - ->withEntry('json', lit('[{"id":1},{"id":2}]')->jsonDecode()) + ->withColumn('json', lit('[{"id":1},{"id":2}]')->jsonDecode()) ->write(to_memory($memory = new ArrayMemory())) ->run(); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/AllTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/AllTest.php index ce60fb3039..da3c5e15a6 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/AllTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/AllTest.php @@ -25,7 +25,7 @@ public function test_all_cases_found(): void ['id' => 3], ['id' => 4, 'array' => ['a' => 1, 'b' => 2, 'c' => 3]], ])) - ->withEntry('result', when( + ->withColumn('result', when( ref('id')->isEven()->and(ref('array')->isNotNull()), lit('found'), lit('not found'), diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/AnyTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/AnyTest.php index 481d8a4f04..d3455d1343 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/AnyTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/AnyTest.php @@ -25,7 +25,7 @@ public function test_any_case_found(): void ['id' => 3], ['id' => 4, 'array' => ['a' => 1, 'b' => 2, 'c' => 3]], ])) - ->withEntry('result', when( + ->withColumn('result', when( ref('id')->isEven()->or(ref('array')->isNotNull()), lit('found'), lit('not found'), diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/AppendTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/AppendTest.php index a298c86b80..7eecfbf6a3 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/AppendTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/AppendTest.php @@ -21,7 +21,7 @@ public function test_append_basic_operation(): void ->read(from_array([ ['name' => 'John'], ])) - ->withEntry('greeting', ref('name')->append(lit(' Doe'))) + ->withColumn('greeting', ref('name')->append(lit(' Doe'))) ->write(to_memory($memory = new ArrayMemory())) ->run(); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/ArrayExpandTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/ArrayExpandTest.php index 46a15a3e5c..cc27e69bd4 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/ArrayExpandTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/ArrayExpandTest.php @@ -45,7 +45,7 @@ public function test_a_page_of_25_000_structures_expanded_into_a_new_column(): v 25_000, data_frame() ->read(from_array([['body' => ExpansionMother::page(25_000)]], schema(str_schema('body')))) - ->withEntry( + ->withColumn( 'body', ref('body') ->jsonDecode() @@ -53,7 +53,7 @@ public function test_a_page_of_25_000_structures_expanded_into_a_new_column(): v 'rows' => type_list(ExpansionMother::pageRowType()), ])), ) - ->withEntry('record', array_expand(array_get(ref('body'), 'rows'))) + ->withColumn('record', array_expand(array_get(ref('body'), 'rows'))) ->select('record') ->fetch() ->count(), @@ -66,7 +66,7 @@ public function test_a_page_of_25_000_structures_expanded_in_place(): void 25_000, data_frame() ->read(from_array([['body' => ExpansionMother::page(25_000)]], schema(str_schema('body')))) - ->withEntry( + ->withColumn( 'body', ref('body') ->jsonDecode() @@ -74,7 +74,7 @@ public function test_a_page_of_25_000_structures_expanded_in_place(): void 'rows' => type_list(ExpansionMother::pageRowType()), ])), ) - ->withEntry('body', array_expand(array_get(ref('body'), 'rows'))) + ->withColumn('body', array_expand(array_get(ref('body'), 'rows'))) ->select('body') ->fetch() ->count(), @@ -89,7 +89,7 @@ public function test_100_000_short_strings_expanded_into_a_new_column(): void ->read(from_array([[ 'items' => ExpansionMother::terms(100_000), ]], schema(list_schema('items', type_list(type_string()))))) - ->withEntry('item', array_expand(ref('items'))) + ->withColumn('item', array_expand(ref('items'))) ->select('item') ->fetch() ->count(), @@ -104,7 +104,7 @@ public function test_100_000_short_strings_expanded_in_place(): void ->read(from_array([[ 'items' => ExpansionMother::terms(100_000), ]], schema(list_schema('items', type_list(type_string()))))) - ->withEntry('items', array_expand(ref('items'))) + ->withColumn('items', array_expand(ref('items'))) ->select('items') ->fetch() ->count(), @@ -118,7 +118,7 @@ public function test_a_small_input_column_is_copied_to_every_expanded_row(): voi [['id' => 7, 'items' => ExpansionMother::terms(100_000)]], schema(int_schema('id'), list_schema('items', type_list(type_string()))), )) - ->withEntry('item', array_expand(ref('items'))) + ->withColumn('item', array_expand(ref('items'))) ->select('id', 'item') ->fetch(); @@ -133,7 +133,7 @@ public function test_a_nested_expand_over_a_page_of_25_000_structures(): void 25_000, data_frame() ->read(from_array([['body' => ExpansionMother::page(25_000)]], schema(str_schema('body')))) - ->withEntry( + ->withColumn( 'body', ref('body') ->jsonDecode() @@ -141,7 +141,7 @@ public function test_a_nested_expand_over_a_page_of_25_000_structures(): void 'rows' => type_list(ExpansionMother::pageRowType()), ])), ) - ->withEntry('record', array_get(array_expand(array_get(ref('body'), 'rows')), 'clicks')) + ->withColumn('record', array_get(array_expand(array_get(ref('body'), 'rows')), 'clicks')) ->select('record') ->fetch() ->count(), @@ -154,7 +154,7 @@ public function test_an_unpack_over_a_page_of_25_000_expanded_structures(): void 25_000, data_frame() ->read(from_array([['body' => ExpansionMother::page(25_000)]], schema(str_schema('body')))) - ->withEntry( + ->withColumn( 'body', ref('body') ->jsonDecode() @@ -162,7 +162,7 @@ public function test_an_unpack_over_a_page_of_25_000_expanded_structures(): void 'rows' => type_list(ExpansionMother::pageRowType()), ])), ) - ->withEntry( + ->withColumn( 'record', array_expand(array_get(ref('body'), 'rows'))->unpack(schema(int_schema('clicks'))), ) @@ -178,7 +178,7 @@ public function test_an_expansion_emits_batches_of_at_most_1_000_rows(): void ->read(from_array([[ 'items' => ExpansionMother::terms(2_500), ]], schema(list_schema('items', type_list(type_string()))))) - ->withEntry('item', array_expand(ref('items'))) + ->withColumn('item', array_expand(ref('items'))) ->get(); static::assertSame( @@ -187,7 +187,7 @@ public function test_an_expansion_emits_batches_of_at_most_1_000_rows(): void ); } - public function test_an_expanding_with_entry_runs_on_the_expanding_processor(): void + public function test_an_expanding_with_column_runs_on_the_expanding_processor(): void { $steps = static function (DataFrame $frame): array { $plan = $frame->explain(); @@ -206,9 +206,9 @@ public function test_an_expanding_with_entry_runs_on_the_expanding_processor(): static::assertContains( ExpandingProcessor::class, - $steps($frame()->withEntry('item', array_expand(ref('items')))), + $steps($frame()->withColumn('item', array_expand(ref('items')))), ); - static::assertNotContains(ExpandingProcessor::class, $steps($frame()->withEntry('item', lit(1)))); + static::assertNotContains(ExpandingProcessor::class, $steps($frame()->withColumn('item', lit(1)))); } public function test_explain_shows_the_columns_an_expand_keeps(): void @@ -217,7 +217,7 @@ public function test_explain_shows_the_columns_an_expand_keeps(): void ->read(from_array([[ 'items' => ExpansionMother::terms(3), ]], schema(list_schema('items', type_list(type_string()))))) - ->withEntry('item', array_expand(ref('items'))) + ->withColumn('item', array_expand(ref('items'))) ->select('item') ->explain(); @@ -234,7 +234,7 @@ public function test_expand_nested_in_a_structure_gives_one_row_per_element(): v [['id' => 1, 'tags' => ['a', 'b']], ['id' => 2, 'tags' => []]], schema(int_schema('id'), list_schema('tags', type_list(type_string()))), )) - ->withEntry('tag', structure(['name' => ref('tags')->expand()])) + ->withColumn('tag', structure(['name' => ref('tags')->expand()])) ->drop('tags'); static::assertSame('structure{name: string}', $frame()->schema()->get('tag')->type()->toString()); @@ -261,7 +261,7 @@ public function test_expands_in_one_expression_are_zipped_and_padded_with_null() list_schema('scores', type_list(type_integer())), ), )) - ->withEntry('pair', structure(['tag' => ref('tags')->expand(), 'score' => ref('scores')->expand()])) + ->withColumn('pair', structure(['tag' => ref('tags')->expand(), 'score' => ref('scores')->expand()])) ->drop('tags', 'scores'); static::assertSame( @@ -285,7 +285,7 @@ public function test_expand_both(): void ->read(from_array([ ['id' => 1, 'array' => ['a' => 1, 'b' => 2, 'c' => 3]], ])) - ->withEntry('expanded', array_expand(ref('array'), ArrayExpand::BOTH)) + ->withColumn('expanded', array_expand(ref('array'), ArrayExpand::BOTH)) ->drop('array') ->write(to_memory($memory = new ArrayMemory())) ->run(); @@ -306,7 +306,7 @@ public function test_expand_keys(): void ->read(from_array([ ['id' => 1, 'array' => ['a' => 1, 'b' => 2, 'c' => 3]], ])) - ->withEntry('expanded', array_expand(ref('array'), ArrayExpand::KEYS)) + ->withColumn('expanded', array_expand(ref('array'), ArrayExpand::KEYS)) ->drop('array') ->write(to_memory($memory = new ArrayMemory())) ->run(); @@ -327,7 +327,7 @@ public function test_expand_values(): void ->read(from_array([ ['id' => 1, 'array' => ['a' => 1, 'b' => 2, 'c' => 3]], ])) - ->withEntry('expanded', array_expand(ref('array'))) + ->withColumn('expanded', array_expand(ref('array'))) ->drop('array') ->write(to_memory($memory = new ArrayMemory())) ->run(); @@ -354,7 +354,7 @@ public function test_expand_of_an_absent_optional_collection_gives_no_rows(): vo ])), ), )) - ->withEntry('item', array_expand(structure_get(ref('b'), '?x'))) + ->withColumn('item', array_expand(structure_get(ref('b'), '?x'))) ->drop('b') ->write(to_memory($memory = new ArrayMemory())) ->run(); @@ -369,7 +369,7 @@ public function test_nested_expand_of_a_null_list_gives_no_rows(): void [['id' => 1, 'data' => [1, 2]], ['id' => 2, 'data' => null]], schema(int_schema('id'), list_schema('data', type_list(type_integer()), nullable: true)), )) - ->withEntry('item', optional(array_expand(ref('data')))) + ->withColumn('item', optional(array_expand(ref('data')))) ->drop('data') ->write(to_memory($memory = new ArrayMemory())) ->run(); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/ArrayGetCollectionTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/ArrayGetCollectionTest.php index 351daedc2a..06eb71746a 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/ArrayGetCollectionTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/ArrayGetCollectionTest.php @@ -29,7 +29,7 @@ public function test_array_get_collection(): void ], ['id' => 2], ])) - ->withEntry('result', optional(ref('array')->arrayGetCollection(['a', 'c']))) + ->withColumn('result', optional(ref('array')->arrayGetCollection(['a', 'c']))) ->drop('array') ->write(to_memory($memory = new ArrayMemory())) ->run(); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/ArrayGetTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/ArrayGetTest.php index 72ffe9fdce..0883d79566 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/ArrayGetTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/ArrayGetTest.php @@ -30,7 +30,7 @@ public function test_array_get(): void ['id' => 1, 'array' => ['a' => 1, 'b' => 2, 'c' => 3]], ['id' => 2], ])) - ->withEntry('result', optional(ref('array')->arrayGet('b'))) + ->withColumn('result', optional(ref('array')->arrayGet('b'))) ->drop('array') ->write(to_memory($memory = new ArrayMemory())) ->run(); @@ -56,7 +56,7 @@ public function test_nullsafe_path_reads_an_optional_collection(): void ])), ), )) - ->withEntry('v', structure_get(ref('b'), '?x')) + ->withColumn('v', structure_get(ref('b'), '?x')) ->drop('b') ->write(to_memory($memory = new ArrayMemory())) ->run(); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/ArrayKeyRenameTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/ArrayKeyRenameTest.php index d8702251c8..1b5185af16 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/ArrayKeyRenameTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/ArrayKeyRenameTest.php @@ -23,7 +23,7 @@ public function test_array_key_rename(): void ['id' => 1, 'array' => ['a' => 1, 'b' => 2, 'c' => 3]], ['id' => 2], ])) - ->withEntry('array', optional(array_key_rename(ref('array'), 'a', 'd'))) + ->withColumn('array', optional(array_key_rename(ref('array'), 'a', 'd'))) ->write(to_memory($memory = new ArrayMemory())) ->run(); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/ArrayKeysStyleConvertTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/ArrayKeysStyleConvertTest.php index 105a6b540b..9d4d4be4cc 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/ArrayKeysStyleConvertTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/ArrayKeysStyleConvertTest.php @@ -27,7 +27,7 @@ public function test_array_keys_style_convert(): void ->read(from_array([ ['id' => 1, 'array' => ['camelCased' => 1, 'snake_cased' => 2, 'space word' => 3]], ])) - ->withEntry('array', array_keys_style_convert(ref('array'), 'camel')) + ->withColumn('array', array_keys_style_convert(ref('array'), 'camel')) ->write(to_memory($memory = new ArrayMemory())) ->run(); @@ -60,7 +60,7 @@ public function test_a_nested_convert_stores_the_converted_shape(): void ->read(from_array([ ['id' => 1, 'array' => ['itemId' => 1, 'itemVariants' => [['variantName' => 'a']]]], ])) - ->withEntry('array', array_keys_style_convert(ref('array'), 'snake')) + ->withColumn('array', array_keys_style_convert(ref('array'), 'snake')) ->write(to_memory($memory = new ArrayMemory())) ->run(); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/ArrayMergeCollectionTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/ArrayMergeCollectionTest.php index f24d6264a4..e5e54b9e3d 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/ArrayMergeCollectionTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/ArrayMergeCollectionTest.php @@ -29,7 +29,7 @@ public function test_array_merge_collection(): void ], ['id' => 2], ])) - ->withEntry('result', optional(ref('array')->arrayMergeCollection())) + ->withColumn('result', optional(ref('array')->arrayMergeCollection())) ->drop('array') ->write(to_memory($memory = new ArrayMemory())) ->run(); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/ArrayMergeTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/ArrayMergeTest.php index af3c98c87c..d57b777a13 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/ArrayMergeTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/ArrayMergeTest.php @@ -23,7 +23,7 @@ public function test_array_merge(): void ['id' => 1, 'first' => ['a' => 1, 'b' => 2], 'second' => ['c' => 3]], ['id' => 2], ])) - ->withEntry('array', optional(array_merge(ref('first'), ref('second')))) + ->withColumn('array', optional(array_merge(ref('first'), ref('second')))) ->drop('first', 'second') ->write(to_memory($memory = new ArrayMemory())) ->run(); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/ArrayPathExistsTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/ArrayPathExistsTest.php index 5df25aeb71..dd6ebce9f1 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/ArrayPathExistsTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/ArrayPathExistsTest.php @@ -23,7 +23,7 @@ public function test_array_path_exists(): void ['id' => 1, 'array' => ['a' => 1, 'b' => 2, 'c' => 3]], ['id' => 2], ])) - ->withEntry('has_array', optional(ref('array')->arrayPathExists('a'))) + ->withColumn('has_array', optional(ref('array')->arrayPathExists('a'))) ->drop('array') ->write(to_memory($memory = new ArrayMemory())) ->run(); @@ -44,7 +44,7 @@ public function test_array_path_function_exists(): void ['id' => 1, 'array' => ['a' => 1, 'b' => 2, 'c' => 3]], ['id' => 2], ])) - ->withEntry('has_array', optional(array_exists(ref('array'), 'a'))) + ->withColumn('has_array', optional(array_exists(ref('array'), 'a'))) ->drop('array') ->write(to_memory($memory = new ArrayMemory())) ->run(); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/ArrayReverseTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/ArrayReverseTest.php index 3e8f84ebe0..8bbdfb36a9 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/ArrayReverseTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/ArrayReverseTest.php @@ -22,7 +22,7 @@ public function test_array_reverse(): void ['id' => 1, 'array' => ['a' => 1, 'b' => 2, 'c' => 3]], ['id' => 2], ])) - ->withEntry('array', optional(ref('array')->arrayReverse())) + ->withColumn('array', optional(ref('array')->arrayReverse())) ->write(to_memory($memory = new ArrayMemory())) ->run(); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/ArraySortTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/ArraySortTest.php index a4b18400bb..826eb4d558 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/ArraySortTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/ArraySortTest.php @@ -24,7 +24,7 @@ public function test_array_sort(): void ['id' => 1, 'array' => ['a' => 1, 'c' => 3, 'b' => 2]], ['id' => 2], ])) - ->withEntry('array', optional(array_sort(ref('array'), Sort::ksort))) + ->withColumn('array', optional(array_sort(ref('array'), Sort::ksort))) ->write(to_memory($memory = new ArrayMemory())) ->run(); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/ArrayUnpackTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/ArrayUnpackTest.php index 9c34adbc3d..752c4d3fb0 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/ArrayUnpackTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/ArrayUnpackTest.php @@ -24,7 +24,7 @@ public function test_array_unpack(): void ['id' => 1, 'array' => ['a' => 1, 'b' => 2, 'c' => 3]], ['id' => 2, 'array' => []], ])) - ->withEntry('array', ref('array')->unpack(schema(int_schema('a'), int_schema('b'), int_schema('c')))) + ->withColumn('array', ref('array')->unpack(schema(int_schema('a'), int_schema('b'), int_schema('c')))) ->renameEach(rename_replace('array.', '')) ->drop('array') ->write(to_memory($memory = new ArrayMemory())) diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/BetweenTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/BetweenTest.php index d38f02c5af..8224e9124a 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/BetweenTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/BetweenTest.php @@ -22,11 +22,11 @@ public function test_between_comparisons(): void ->read(from_array([ ['val' => new DateTimeImmutable('2023-01-10 00:00:00')], ])) - ->withEntry('between', ref('val')->between( + ->withColumn('between', ref('val')->between( lit(new DateTimeImmutable('2023-01-01 00:00:00')), lit(new DateTimeImmutable('2023-01-20 00:00:00')), )) - ->withEntry('not_between', ref('val')->between( + ->withColumn('not_between', ref('val')->between( lit(new DateTimeImmutable('2023-01-01 00:00:00')), lit(new DateTimeImmutable('2023-01-08 00:00:00')), )) diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/BinaryComparisonsTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/BinaryComparisonsTest.php index c620e6fa7c..c9da26d2bd 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/BinaryComparisonsTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/BinaryComparisonsTest.php @@ -22,20 +22,20 @@ public function test_all_comparisons(): void ->read(from_array([ ['a' => 100, 'b' => 100, 'c' => 10, 'd' => 'value', 'array' => ['a' => 10, 'b' => 20, 'c' => 30]], ])) - ->withEntry('eq', when(ref('a')->equals(ref('b')), lit(true), lit(false))) - ->withEntry('ne', when(ref('a')->notEquals(ref('c')), lit(true), lit(false))) - ->withEntry('gt', when(ref('a')->greaterThan(ref('b')), lit(true), lit(false))) - ->withEntry('ge', when(ref('a')->greaterThanEqual(ref('b')), lit(true), lit(false))) - ->withEntry('lt', when(ref('a')->lessThan(ref('b')), lit(true), lit(false))) - ->withEntry('le', when(ref('a')->lessThanEqual(ref('b')), lit(true), lit(false))) - ->withEntry('in', when(ref('c')->isIn(ref('array')), lit(true), lit(false))) - ->withEntry('same', when(ref('a')->same(ref('b')), lit(true), lit(false))) - ->withEntry('not_same', when(ref('a')->notSame(ref('b')), lit(true), lit(false))) - ->withEntry('numeric', when(ref('a')->isNumeric(), lit(true), lit(false))) - ->withEntry('not_numeric', when(ref('a')->isNotNumeric(), lit(true), lit(false))) - ->withEntry('null', when(ref('d')->isNull(), lit(true), lit(false))) - ->withEntry('not_null', when(ref('d')->isNotNull(), lit(true), lit(false))) - ->withEntry('type', when(ref('a')->isType('string'), lit(true), lit(false))) + ->withColumn('eq', when(ref('a')->equals(ref('b')), lit(true), lit(false))) + ->withColumn('ne', when(ref('a')->notEquals(ref('c')), lit(true), lit(false))) + ->withColumn('gt', when(ref('a')->greaterThan(ref('b')), lit(true), lit(false))) + ->withColumn('ge', when(ref('a')->greaterThanEqual(ref('b')), lit(true), lit(false))) + ->withColumn('lt', when(ref('a')->lessThan(ref('b')), lit(true), lit(false))) + ->withColumn('le', when(ref('a')->lessThanEqual(ref('b')), lit(true), lit(false))) + ->withColumn('in', when(ref('c')->isIn(ref('array')), lit(true), lit(false))) + ->withColumn('same', when(ref('a')->same(ref('b')), lit(true), lit(false))) + ->withColumn('not_same', when(ref('a')->notSame(ref('b')), lit(true), lit(false))) + ->withColumn('numeric', when(ref('a')->isNumeric(), lit(true), lit(false))) + ->withColumn('not_numeric', when(ref('a')->isNotNumeric(), lit(true), lit(false))) + ->withColumn('null', when(ref('d')->isNull(), lit(true), lit(false))) + ->withColumn('not_null', when(ref('d')->isNotNull(), lit(true), lit(false))) + ->withColumn('type', when(ref('a')->isType('string'), lit(true), lit(false))) ->drop('array') ->write(to_memory($memory = new ArrayMemory())) ->run(); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/BinaryLengthTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/BinaryLengthTest.php index 20aed37962..9f19bd76ab 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/BinaryLengthTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/BinaryLengthTest.php @@ -30,7 +30,7 @@ public function test_binary_length(): void ['text' => 'é'], ['text' => "\x00\x01\x02\xFF"], ])) - ->withEntry('binary_length', optional(ref('text')->binaryLength())) + ->withColumn('binary_length', optional(ref('text')->binaryLength())) ->write(to_memory($memory = new ArrayMemory())) ->run(); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/CallUserFuncTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/CallUserFuncTest.php index ebaf8ead48..70dd0e1d01 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/CallUserFuncTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/CallUserFuncTest.php @@ -23,7 +23,7 @@ public function test_call(): void ->read(from_array([ ['integers' => '1,2,3'], ])) - ->withEntry('integers', ref('integers')->call( + ->withColumn('integers', ref('integers')->call( lit('explode'), type_list(type_integer()), ['separator' => ','], diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/CapitalizeTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/CapitalizeTest.php index 434c0cfb1b..66d11f6c6f 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/CapitalizeTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/CapitalizeTest.php @@ -20,7 +20,7 @@ public function test_to_lower(): void ->read(from_array([ ['key' => 'this is title'], ])) - ->withEntry('capitalized', ref('key')->capitalize()) + ->withColumn('capitalized', ref('key')->capitalize()) ->write(to_memory($memory = new ArrayMemory())) ->run(); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/CastTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/CastTest.php index 43e6a6c284..7fb137c45c 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/CastTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/CastTest.php @@ -36,7 +36,7 @@ public function test_cast_of_an_absent_nullsafe_path_to_an_optional_target_is_nu ], schema(structure_schema('record', type_structure([ 'deleteTime' => structure_element('deleteTime', type_string(), optional: true), ]))))) - ->withEntry('delete_time', cast(array_get(ref('record'), '?deleteTime'), type_optional(type_datetime()))) + ->withColumn('delete_time', cast(array_get(ref('record'), '?deleteTime'), type_optional(type_datetime()))) ->drop('record') ->fetch(); @@ -53,7 +53,7 @@ public function test_cast(): void ->read(from_array([ ['date' => new DateTimeImmutable('2023-01-01')], ])) - ->withEntry('date', ref('date')->cast('string')) + ->withColumn('date', ref('date')->cast('string')) ->write(to_memory($memory = new ArrayMemory())) ->run(); @@ -69,7 +69,7 @@ public function test_cast_to_array(): void { $rows = df() ->read(from_array([['a' => '[1,2,3]']])) - ->withEntry('b', ref('a')->cast('array')) + ->withColumn('b', ref('a')->cast('array')) ->fetch(); // Cast declares type_array (a json column) and the bind enforces that declaration. @@ -88,7 +88,7 @@ public function test_cast_non_deterministic_values(): void ->read(from_array([ ['array' => []], ])) - ->withEntry('list_int', ref('array')->cast(type_optional(type_list(type_integer())))) + ->withColumn('list_int', ref('array')->cast(type_optional(type_list(type_integer())))) ->drop('array') ->fetch() ->column('list_int') diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/ChunkTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/ChunkTest.php index 22a32876ea..c71c496608 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/ChunkTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/ChunkTest.php @@ -29,8 +29,8 @@ public function test_chunk(): void ['text' => 'chunk', 'size' => 0], ['text' => null, 'size' => 3], ])) - ->withEntry('chunked', optional(ref('text')->chunk(ref('size')))) - ->withEntry('chunked_fixed', optional(ref('text')->chunk(2))) + ->withColumn('chunked', optional(ref('text')->chunk(ref('size')))) + ->withColumn('chunked_fixed', optional(ref('text')->chunk(2))) ->write(to_memory($memory = new ArrayMemory())) ->run(); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/CodePointLengthTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/CodePointLengthTest.php index 60c15a270d..03d3178fb6 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/CodePointLengthTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/CodePointLengthTest.php @@ -33,7 +33,7 @@ public function test_code_point_length(): void ['text' => '👨‍👩‍👧‍👦'], ['text' => '𝐇'], ])) - ->withEntry('code_point_length', optional(ref('text')->codePointLength())) + ->withColumn('code_point_length', optional(ref('text')->codePointLength())) ->write(to_memory($memory = new ArrayMemory())) ->run(); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/CollapseWhitespaceTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/CollapseWhitespaceTest.php index 6f78dfd480..e5006a77bf 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/CollapseWhitespaceTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/CollapseWhitespaceTest.php @@ -20,7 +20,7 @@ public function test_collapse_whitespace_in_dataframe_operations(): void ['text' => 'Multiple spaces between words'], ['text' => "Mixed\t\twhitespace\n\ntypes"], ])) - ->withEntry('cleaned_text', ref('text')->collapseWhitespace()); + ->withColumn('cleaned_text', ref('text')->collapseWhitespace()); static::assertEquals( [ diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/CombineTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/CombineTest.php index a9aecbd4c1..99bb8d3016 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/CombineTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/CombineTest.php @@ -23,7 +23,7 @@ public function test_combine(): void ['id' => 1, 'first' => ['a', 'b', 'c'], 'second' => [1, 2, 3]], ['id' => 2], ])) - ->withEntry('array', optional(combine(ref('first'), ref('second')))) + ->withColumn('array', optional(combine(ref('first'), ref('second')))) ->drop('first', 'second') ->write(to_memory($memory = new ArrayMemory())) ->run(); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/ConcatTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/ConcatTest.php index 75087d3a8a..2519c87e9d 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/ConcatTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/ConcatTest.php @@ -25,7 +25,7 @@ public function test_concat_on_non_string_value(): void ['id' => 1], ['id' => 2], ])) - ->withEntry('concat', concat(ref('id'), lit(null))) + ->withColumn('concat', concat(ref('id'), lit(null))) ->write(to_memory($memory = new ArrayMemory())) ->run(); @@ -45,7 +45,7 @@ public function test_concat_on_nulls(): void ['id' => 1, 'array' => ['field' => 'value']], ['id' => 2], ])) - ->withEntry('concat', concat(lit(null), lit(null))) + ->withColumn('concat', concat(lit(null), lit(null))) ->drop('array') ->write(to_memory($memory = new ArrayMemory())) ->run(); @@ -66,7 +66,7 @@ public function test_concat_on_stringable_value(): void ['id' => 1, 'array' => ['field' => 'value']], ['id' => 2], ])) - ->withEntry('concat', optional(concat(ref('id'), '-', array_get(ref('array'), 'field')))) + ->withColumn('concat', optional(concat(ref('id'), '-', array_get(ref('array'), 'field')))) ->drop('array') ->write(to_memory($memory = new ArrayMemory())) ->run(); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/ConcatWithSeparatorTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/ConcatWithSeparatorTest.php index d637703de4..195e3b6342 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/ConcatWithSeparatorTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/ConcatWithSeparatorTest.php @@ -23,7 +23,7 @@ public function test_concat_on_list_of_strings_and_null(): void ->read(from_array([ ['tags' => ['a', 'b', 'c', 'd']], ])) - ->withEntry('tags', ref('tags')->concatWithSeparator(lit(', '), lit(null))) + ->withColumn('tags', ref('tags')->concatWithSeparator(lit(', '), lit(null))) ->write(to_memory($memory = new ArrayMemory())) ->run(); @@ -42,7 +42,7 @@ public function test_concat_on_non_string_value(): void ['id' => 1], ['id' => 2], ])) - ->withEntry('concat', concat_ws(lit(','), ref('id'), lit(null))) + ->withColumn('concat', concat_ws(lit(','), ref('id'), lit(null))) ->write(to_memory($memory = new ArrayMemory())) ->run(); @@ -62,7 +62,7 @@ public function test_concat_on_nulls(): void ['id' => 1, 'array' => ['field' => 'value']], ['id' => 2], ])) - ->withEntry('concat', optional(concat_ws(lit(null), lit(null)))) + ->withColumn('concat', optional(concat_ws(lit(null), lit(null)))) ->drop('array') ->write(to_memory($memory = new ArrayMemory())) ->run(); @@ -83,7 +83,7 @@ public function test_concat_with_separator(): void ['id' => 1], ['id' => 2], ])) - ->withEntry('concat', concat_ws(lit('->'), lit('id'), ref('id'))) + ->withColumn('concat', concat_ws(lit('->'), lit('id'), ref('id'))) ->drop('array') ->write(to_memory($memory = new ArrayMemory())) ->run(); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/ContainsTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/ContainsTest.php index ae578d8c2b..f896a5bd9d 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/ContainsTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/ContainsTest.php @@ -23,7 +23,7 @@ public function test_contains(): void ->read(from_array([ ['key' => 'value'], ])) - ->withEntry('contains', ref('key')->contains(lit('a'))) + ->withColumn('contains', ref('key')->contains(lit('a'))) ->write(to_memory($memory = new ArrayMemory())) ->run(); @@ -41,7 +41,7 @@ public function test_contains_on_array(): void ->read(from_array([ ['key' => 'value', 'tags' => ['A', 'B']], ])) - ->withEntry('contains', ref('tags')->contains(lit('A'))) + ->withColumn('contains', ref('tags')->contains(lit('A'))) ->drop('tags') ->write(to_memory($memory = new ArrayMemory())) ->run(); @@ -60,7 +60,7 @@ public function test_contains_on_non_string_key(): void ->read(from_array([ ['id' => 1], ])) - ->withEntry('contains', optional(ref('id')->contains(lit('1')))) + ->withColumn('contains', optional(ref('id')->contains(lit('1')))) ->write(to_memory($memory = new ArrayMemory())) ->run(); @@ -78,7 +78,7 @@ public function test_contains_on_non_string_value(): void ->read(from_array([ ['id' => '1'], ])) - ->withEntry('contains', optional(ref('id')->contains(lit(1)))) + ->withColumn('contains', optional(ref('id')->contains(lit(1)))) ->write(to_memory($memory = new ArrayMemory())) ->run(); @@ -96,7 +96,7 @@ public function test_not_contains_on_array(): void ->read(from_array([ ['key' => 'value', 'tags' => ['A', 'B']], ])) - ->withEntry('contains', not(ref('tags')->contains(lit('A')))) + ->withColumn('contains', not(ref('tags')->contains(lit('A')))) ->drop('tags') ->write(to_memory($memory = new ArrayMemory())) ->run(); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/DOMElementAttributeValueTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/DOMElementAttributeValueTest.php index f84c06239c..ac7eeaf8f9 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/DOMElementAttributeValueTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/DOMElementAttributeValueTest.php @@ -24,7 +24,7 @@ public function test_dom_element_attribute_value(): void ->read(from_rows(array_to_rows([[ 'node' => type_xml_element()->cast('User Name 01'), ]], schema(xml_element_schema('node'))))) - ->withEntry('user_id', ref('node')->domElementAttributeValue('id')) + ->withColumn('user_id', ref('node')->domElementAttributeValue('id')) ->drop('node') ->fetch(); @@ -42,7 +42,7 @@ public function test_dom_element_attribute_value_from_dom_document(): void ->read(from_rows(array_to_rows([[ 'node' => type_xml()->cast('User Name 01'), ]], schema(xml_schema('node'))))) - ->withEntry('user_id', ref('node')->domElementAttributeValue('id')) + ->withColumn('user_id', ref('node')->domElementAttributeValue('id')) ->drop('node') ->fetch(); @@ -60,7 +60,7 @@ public function test_dom_element_attribute_value_on_xpath_result(): void ->read(from_rows(array_to_rows([[ 'node' => type_xml()->cast('User Name 01'), ]], schema(xml_schema('node'))))) - ->withEntry('user_id', ref('node')->xpath('name')->domElementAttributeValue('id')) + ->withColumn('user_id', ref('node')->xpath('name')->domElementAttributeValue('id')) ->drop('node') ->fetch(); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/DOMElementNextSiblingTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/DOMElementNextSiblingTest.php index 2d9cb560fc..4d785463cf 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/DOMElementNextSiblingTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/DOMElementNextSiblingTest.php @@ -31,9 +31,9 @@ public function test_dom_element_sibling_text_value(): void '

User Name

01
', ), ]], schema(html_element_schema('html_element'))))) - ->withEntry('user_details', ref('html_element')->htmlQuerySelector('section')) - ->withEntry('user_name', ref('user_details')->htmlQuerySelector('h1')->domElementValue()) - ->withEntry('user_id', optional(ref('user_details')->domElementNextSibling()->domElementValue())) + ->withColumn('user_details', ref('html_element')->htmlQuerySelector('section')) + ->withColumn('user_name', ref('user_details')->htmlQuerySelector('h1')->domElementValue()) + ->withColumn('user_id', optional(ref('user_details')->domElementNextSibling()->domElementValue())) ->select('user_name', 'user_id') ->fetch(); @@ -57,9 +57,9 @@ public function test_dom_element_sibling_text_value_when_only_element_is_allowed '

User Name

01
', ), ]], schema(html_element_schema('html_element'))))) - ->withEntry('user_details', ref('html_element')->htmlQuerySelector('section')) - ->withEntry('user_name', ref('user_details')->htmlQuerySelector('h1')->domElementValue()) - ->withEntry('user_id', optional(ref('user_details')->domElementNextSibling()->domElementValue())) + ->withColumn('user_details', ref('html_element')->htmlQuerySelector('section')) + ->withColumn('user_name', ref('user_details')->htmlQuerySelector('h1')->domElementValue()) + ->withColumn('user_id', optional(ref('user_details')->domElementNextSibling()->domElementValue())) ->select('user_name', 'user_id') ->fetch(); @@ -82,8 +82,8 @@ public function test_xml_sibling_element_value(): void // a batch stores an element's own markup, so siblings are reached from the document it belongs to $rows = df() ->read(from_rows(array_to_rows([['xml' => $dom]], schema(xml_schema('xml'))))) - ->withEntry('user_name', ref('xml')->xpath('/user/name')->arrayGet('0')->domElementValue()) - ->withEntry( + ->withColumn('user_name', ref('xml')->xpath('/user/name')->arrayGet('0')->domElementValue()) + ->withColumn( 'user_id', ref('xml')->xpath('/user/name')->arrayGet('0')->domElementNextSibling()->domElementValue(), ) @@ -108,7 +108,7 @@ public function test_storing_the_element_of_an_xpath_chain_keeps_its_markup(): v $rows = df() ->read(from_rows(array_to_rows([['xml' => $dom]], schema(xml_schema('xml'))))) - ->withEntry('sibling', ref('xml')->xpath('/user/name')->arrayGet('0')->domElementNextSibling()) + ->withColumn('sibling', ref('xml')->xpath('/user/name')->arrayGet('0')->domElementNextSibling()) ->select('sibling') ->fetch(); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/DOMElementParentTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/DOMElementParentTest.php index 7b7d485e04..64c03e9e4e 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/DOMElementParentTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/DOMElementParentTest.php @@ -26,9 +26,9 @@ public function test_dom_element_value_from_dom_document(): void '

User Name

01
', ), ]], schema(html_element_schema('html_element'))))) - ->withEntry('user_details', ref('html_element')->htmlQuerySelector('section')) - ->withEntry('user_name', ref('user_details')->htmlQuerySelector('h1')->domElementValue()) - ->withEntry( + ->withColumn('user_details', ref('html_element')->htmlQuerySelector('section')) + ->withColumn('user_name', ref('user_details')->htmlQuerySelector('h1')->domElementValue()) + ->withColumn( 'user_id', ref('user_details')->domElementParent()->htmlQuerySelector('span')->domElementValue(), ) diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/DOMElementPreviousSiblingTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/DOMElementPreviousSiblingTest.php index ff56b6555c..7bea816394 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/DOMElementPreviousSiblingTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/DOMElementPreviousSiblingTest.php @@ -29,9 +29,9 @@ public function test_dom_element_sibling_text_value(): void '
01

User Name

', ), ]], schema(html_element_schema('html_element'))))) - ->withEntry('user_details', ref('html_element')->htmlQuerySelector('section')) - ->withEntry('user_name', ref('user_details')->htmlQuerySelector('h1')->domElementValue()) - ->withEntry('user_id', optional(ref('user_details')->domElementPreviousSibling()->domElementValue())) + ->withColumn('user_details', ref('html_element')->htmlQuerySelector('section')) + ->withColumn('user_name', ref('user_details')->htmlQuerySelector('h1')->domElementValue()) + ->withColumn('user_id', optional(ref('user_details')->domElementPreviousSibling()->domElementValue())) ->select('user_name', 'user_id') ->fetch(); @@ -55,9 +55,9 @@ public function test_dom_element_sibling_text_value_when_only_element_is_allowed '
01

User Name

', ), ]], schema(html_element_schema('html_element'))))) - ->withEntry('user_details', ref('html_element')->htmlQuerySelector('section')) - ->withEntry('user_name', ref('user_details')->htmlQuerySelector('h1')->domElementValue()) - ->withEntry('user_id', optional(ref('user_details')->domElementPreviousSibling()->domElementValue())) + ->withColumn('user_details', ref('html_element')->htmlQuerySelector('section')) + ->withColumn('user_name', ref('user_details')->htmlQuerySelector('h1')->domElementValue()) + ->withColumn('user_id', optional(ref('user_details')->domElementPreviousSibling()->domElementValue())) ->select('user_name', 'user_id') ->fetch(); @@ -80,8 +80,8 @@ public function test_xml_sibling_element_value(): void // a batch stores an element's own markup, so siblings are reached from the document it belongs to $rows = df() ->read(from_rows(array_to_rows([['xml' => $dom]], schema(xml_schema('xml'))))) - ->withEntry('user_id', ref('xml')->xpath('/user/number')->arrayGet('0')->domElementValue()) - ->withEntry( + ->withColumn('user_id', ref('xml')->xpath('/user/number')->arrayGet('0')->domElementValue()) + ->withColumn( 'user_name', ref('xml')->xpath('/user/number')->arrayGet('0')->domElementPreviousSibling()->domElementValue(), ) diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/DOMElementValueTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/DOMElementValueTest.php index 789bd65d75..bc3ab90550 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/DOMElementValueTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/DOMElementValueTest.php @@ -27,7 +27,7 @@ public function test_dom_element_cast_as_string(): void $rows = df() ->read(from_rows(array_to_rows([['html_raw' => $document]], schema(xml_schema('html_raw'))))) - ->withEntry('html', ref('html_raw')->cast(type_string())) + ->withColumn('html', ref('html_raw')->cast(type_string())) ->drop('html_raw') ->fetch(); @@ -45,7 +45,7 @@ public function test_dom_element_value(): void ->read(from_rows(array_to_rows([[ 'node' => type_xml_element()->cast('User Name 01'), ]], schema(xml_element_schema('node'))))) - ->withEntry('user_name', ref('node')->domElementValue()) + ->withColumn('user_name', ref('node')->domElementValue()) ->drop('node') ->fetch(); @@ -63,7 +63,7 @@ public function test_dom_element_value_from_dom_document(): void ->read(from_rows(array_to_rows([[ 'node' => type_xml()->cast('User Name 01'), ]], schema(xml_schema('node'))))) - ->withEntry('user_name', ref('node')->domElementValue()) + ->withColumn('user_name', ref('node')->domElementValue()) ->drop('node') ->fetch(); @@ -82,7 +82,7 @@ public function test_dom_element_value_on_dom_document(): void $rows = df() ->read(from_rows(array_to_rows([['html_raw' => $document]], schema(xml_schema('html_raw'))))) - ->withEntry('html', ref('html_raw')->domElementValue()) + ->withColumn('html', ref('html_raw')->domElementValue()) ->drop('html_raw') ->fetch(); @@ -100,7 +100,7 @@ public function test_dom_element_value_on_xpath_result(): void ->read(from_rows(array_to_rows([[ 'node' => type_xml()->cast('User Name 01'), ]], schema(xml_schema('node'))))) - ->withEntry('user_name', ref('node')->xpath('name')->domElementValue()) + ->withColumn('user_name', ref('node')->xpath('name')->domElementValue()) ->drop('node') ->fetch(); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/EndsWithTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/EndsWithTest.php index 722b9afcff..6885ec95bb 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/EndsWithTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/EndsWithTest.php @@ -22,7 +22,7 @@ public function test_ends_with(): void ->read(from_array([ ['key' => 'value'], ])) - ->withEntry('ends_with', ref('key')->endsWith(lit('e'))) + ->withColumn('ends_with', ref('key')->endsWith(lit('e'))) ->write(to_memory($memory = new ArrayMemory())) ->run(); @@ -40,7 +40,7 @@ public function test_ends_with_on_non_string_key(): void ->read(from_array([ ['id' => 1], ])) - ->withEntry('ends_with', optional(ref('id')->endsWith(lit('1')))) + ->withColumn('ends_with', optional(ref('id')->endsWith(lit('1')))) ->write(to_memory($memory = new ArrayMemory())) ->run(); @@ -58,7 +58,7 @@ public function test_ends_with_on_non_string_value(): void ->read(from_array([ ['id' => '1'], ])) - ->withEntry('ends_with', optional(ref('id')->endsWith(lit(1)))) + ->withColumn('ends_with', optional(ref('id')->endsWith(lit(1)))) ->write(to_memory($memory = new ArrayMemory())) ->run(); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/EnsureEndTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/EnsureEndTest.php index 72cab3b96e..c732d6d0ed 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/EnsureEndTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/EnsureEndTest.php @@ -20,7 +20,7 @@ public function test_ensure_end_in_dataframe_operations(): void ['filename' => 'image.png', 'extension' => '.txt'], ['filename' => 'config.yml', 'extension' => '.txt'], ])) - ->withEntry('normalized_filename', ref('filename')->ensureEnd(ref('extension'))); + ->withColumn('normalized_filename', ref('filename')->ensureEnd(ref('extension'))); static::assertEquals( [ diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/EnsureStartTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/EnsureStartTest.php index e0fe478905..0ddac60a1f 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/EnsureStartTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/EnsureStartTest.php @@ -20,7 +20,7 @@ public function test_ensure_start_in_dataframe_operations(): void ['url' => 'https://github.com', 'prefix' => 'https://'], ['url' => 'ftp://files.example.com', 'prefix' => 'https://'], ])) - ->withEntry('normalized_url', ref('url')->ensureStart(ref('prefix'))); + ->withColumn('normalized_url', ref('url')->ensureStart(ref('prefix'))); static::assertEquals( [ diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/EnumNameTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/EnumNameTest.php index 08510199fb..c95873ddf7 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/EnumNameTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/EnumNameTest.php @@ -30,7 +30,7 @@ public function test_enum_name_produces_string_entry_for_int_backed_enum(): void ->read(from_rows(array_to_rows([[ 'e' => BackedIntEnum::one, ]], schema(enum_schema('e', BackedIntEnum::class))))) - ->withEntry('code', enum_name(ref('e'))) + ->withColumn('code', enum_name(ref('e'))) ->schema() ->get('code') ->type(), @@ -44,7 +44,7 @@ public function test_enum_name_writes_null_for_null_enum_in_permissive_mode(): v ['e' => BackedIntEnum::one], ['e' => null], ], schema(enum_schema('e', BackedIntEnum::class, nullable: true))))) - ->withEntry('code', optional(enum_name(ref('e')))) + ->withColumn('code', optional(enum_name(ref('e')))) ->select('code') ->write(to_memory($memory = new ArrayMemory())) ->run(); @@ -59,7 +59,7 @@ public function test_enum_name_writes_case_names(): void ['e' => BackedIntEnum::one], ['e' => BackedIntEnum::two], ], schema(enum_schema('e', BackedIntEnum::class))))) - ->withEntry('code', enum_name(ref('e'))) + ->withColumn('code', enum_name(ref('e'))) ->select('code') ->write(to_memory($memory = new ArrayMemory())) ->run(); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/EnumValueTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/EnumValueTest.php index 8c00152044..16e177ef92 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/EnumValueTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/EnumValueTest.php @@ -32,7 +32,7 @@ public function test_enum_value_produces_integer_entry_for_int_backed_enum(): vo ->read(from_rows(array_to_rows([[ 'e' => BackedIntEnum::one, ]], schema(enum_schema('e', BackedIntEnum::class))))) - ->withEntry('code', enum_value(ref('e'))) + ->withColumn('code', enum_value(ref('e'))) ->schema() ->get('code') ->type(), @@ -47,7 +47,7 @@ public function test_enum_value_produces_string_entry_for_string_backed_enum(): ->read(from_rows(array_to_rows([[ 'e' => BackedStringEnum::one, ]], schema(enum_schema('e', BackedStringEnum::class))))) - ->withEntry('code', enum_value(ref('e'))) + ->withColumn('code', enum_value(ref('e'))) ->schema() ->get('code') ->type(), @@ -61,7 +61,7 @@ public function test_enum_value_writes_null_for_null_enum_in_permissive_mode(): ['e' => BackedIntEnum::one], ['e' => null], ], schema(enum_schema('e', BackedIntEnum::class, nullable: true))))) - ->withEntry('code', optional(enum_value(ref('e')))) + ->withColumn('code', optional(enum_value(ref('e')))) ->select('code') ->write(to_memory($memory = new ArrayMemory())) ->run(); @@ -76,7 +76,7 @@ public function test_enum_value_writes_backing_values(): void ['e' => BackedIntEnum::one], ['e' => BackedIntEnum::two], ], schema(enum_schema('e', BackedIntEnum::class))))) - ->withEntry('code', enum_value(ref('e'))) + ->withColumn('code', enum_value(ref('e'))) ->select('code') ->write(to_memory($memory = new ArrayMemory())) ->run(); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/HTMLQuerySelectorAllTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/HTMLQuerySelectorAllTest.php index c436fe7d1b..eaa14c4b9b 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/HTMLQuerySelectorAllTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/HTMLQuerySelectorAllTest.php @@ -36,7 +36,7 @@ public function test_invalid_query_all_on_html_document(): void ], df() ->read(from_rows(array_to_rows([['html_raw' => $html]], schema(html_schema('html_raw'))))) - ->withEntry('html', ref('html_raw')->htmlQuerySelectorAll('body div p')) + ->withColumn('html', ref('html_raw')->htmlQuerySelectorAll('body div p')) ->drop('html_raw') ->fetch() ->toArray(), @@ -63,7 +63,7 @@ public function test_valid_query_all_on_html_document(): void ], df() ->read(from_rows(array_to_rows([['html_raw' => $html]], schema(html_schema('html_raw'))))) - ->withEntry('html', ref('html_raw')->htmlQuerySelectorAll('body div span')) + ->withColumn('html', ref('html_raw')->htmlQuerySelectorAll('body div span')) ->drop('html_raw') ->fetch() ->toArray(), diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/HTMLQuerySelectorTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/HTMLQuerySelectorTest.php index c33e3ef190..671a744291 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/HTMLQuerySelectorTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/HTMLQuerySelectorTest.php @@ -33,7 +33,7 @@ public function test_invalid_query_on_html_document(): void ], df() ->read(from_rows(array_to_rows([['html_raw' => $html]], schema(html_schema('html_raw'))))) - ->withEntry('html_element', ref('html_raw')->htmlQuerySelector('body div p')) + ->withColumn('html_element', ref('html_raw')->htmlQuerySelector('body div p')) ->drop('html_raw') ->fetch() ->toArray(), @@ -71,9 +71,9 @@ public function test_valid_query_on_html_document(): void ], df() ->read(from_rows(array_to_rows([['html_raw' => $html]], schema(html_schema('html_raw'))))) - ->withEntry('containers', ref('html_raw')->htmlQuerySelectorAll('body div')->expand()) - ->withEntry('span_element', ref('containers')->htmlQuerySelector('body span')->domElementValue()) - ->withEntry('p_element', ref('containers')->htmlQuerySelector('p')->domElementValue()) + ->withColumn('containers', ref('html_raw')->htmlQuerySelectorAll('body div')->expand()) + ->withColumn('span_element', ref('containers')->htmlQuerySelector('body span')->domElementValue()) + ->withColumn('p_element', ref('containers')->htmlQuerySelector('p')->domElementValue()) ->select('span_element', 'p_element') ->fetch() ->toArray(), diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/HashTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/HashTest.php index f6fe9c243e..f4f800adca 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/HashTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/HashTest.php @@ -30,7 +30,7 @@ public function test_hash_on_given_value(mixed $value, string $expected): void ->read(from_array([ ['key' => $value], ])) - ->withEntry('hash', ref('key')->hash()) + ->withColumn('hash', ref('key')->hash()) ->write(to_memory($memory = new ArrayMemory())) ->run(); @@ -48,7 +48,7 @@ public function test_hash_with_different_algorithm(): void ->read(from_array([ ['key' => 'value'], ])) - ->withEntry('hash', ref('key')->hash(new NativePHPHash('sha512'))) + ->withColumn('hash', ref('key')->hash(new NativePHPHash('sha512'))) ->write(to_memory($memory = new ArrayMemory())) ->run(); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/IndexOfLastTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/IndexOfLastTest.php index 4c7144e757..14361d9228 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/IndexOfLastTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/IndexOfLastTest.php @@ -29,7 +29,7 @@ public function test_index_of_last(): void ['text' => 'abababa', 'needle' => 'aba'], ['text' => 'नमस्ते', 'needle' => 'स्ते'], ])) - ->withEntry('last_index', optional(ref('text')->indexOfLast(ref('needle')))) + ->withColumn('last_index', optional(ref('text')->indexOfLast(ref('needle')))) ->write(to_memory($memory = new ArrayMemory())) ->run(); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/IsEmptyTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/IsEmptyTest.php index 8f14e003c7..b69b7f20ea 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/IsEmptyTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/IsEmptyTest.php @@ -30,7 +30,7 @@ public function test_is_empty(): void ['text' => 'a'], ['text' => '!@#$%'], ])) - ->withEntry('is_empty', optional(ref('text')->isEmpty())) + ->withColumn('is_empty', optional(ref('text')->isEmpty())) ->write(to_memory($memory = new ArrayMemory())) ->run(); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/JsonDecodeTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/JsonDecodeTest.php index b0faca1098..7cddfb7302 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/JsonDecodeTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/JsonDecodeTest.php @@ -19,8 +19,8 @@ public function test_add_json_string_into_existing_reference(): void { data_frame() ->read(from_array([['id' => 1, 'array' => ['a' => 1, 'b' => 2, 'c' => 3]]])) - ->withEntry('json', lit('{"d": 4}')) - ->withEntry('array', ref('array')->arrayMerge(ref('json')->jsonDecode())) + ->withColumn('json', lit('{"d": 4}')) + ->withColumn('array', ref('array')->arrayMerge(ref('json')->jsonDecode())) ->drop('json') ->write(to_memory($memory = new ArrayMemory())) ->run(); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/JsonEncodeTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/JsonEncodeTest.php index ee27f777e4..0497e12aaf 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/JsonEncodeTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/JsonEncodeTest.php @@ -21,8 +21,8 @@ public function test_adding_json_as_object_from_string_entry(): void { data_frame() ->read(from_array([['id' => 1]])) - ->withEntry('json', lit(['id' => 1, 'name' => 'test'])) - ->withEntry('json', ref('json')->jsonEncode(JSON_FORCE_OBJECT)) + ->withColumn('json', lit(['id' => 1, 'name' => 'test'])) + ->withColumn('json', ref('json')->jsonEncode(JSON_FORCE_OBJECT)) ->write(to_memory($memory = new ArrayMemory())) ->run(); @@ -41,8 +41,8 @@ public function test_adding_json_from_string_entry(): void { data_frame() ->read(from_array([['id' => 1]])) - ->withEntry('json', lit([1, 2, 3])) - ->withEntry('json', ref('json')->jsonEncode()) + ->withColumn('json', lit([1, 2, 3])) + ->withColumn('json', ref('json')->jsonEncode()) ->write(to_memory($memory = new ArrayMemory())) ->run(); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/ListSelectTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/ListSelectTest.php index 9a3cae8011..19618b9617 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/ListSelectTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/ListSelectTest.php @@ -66,7 +66,7 @@ public function test_selecting_properties_from_list(): void ], ], ])) - ->withEntry('list', list_ref('list')->select('id')) + ->withColumn('list', list_ref('list')->select('id')) ->fetch(); static::assertEquals( diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/MatchCasesTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/MatchCasesTest.php index c209b0698a..057782aacd 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/MatchCasesTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/MatchCasesTest.php @@ -32,7 +32,7 @@ public function test_case_match(): void $output = df() ->read(from_rows($rows)) - ->withEntry('string', match_cases([ + ->withColumn('string', match_cases([ match_condition(ref('string')->contains('-'), ref('string')->strReplace('-', ' ')), match_condition( ref('string')->call(lit('is_numeric'), type_boolean()), diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/ModifyDateTimeTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/ModifyDateTimeTest.php index 89983a2cf2..3eb4adbc6e 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/ModifyDateTimeTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/ModifyDateTimeTest.php @@ -26,7 +26,7 @@ public function test_concat_on_non_string_value(): void ['id' => 1, 'created_at' => new DateTimeImmutable('2025-01-01')], ['id' => 2, 'created_at' => new DateTimeImmutable('2025-02-01')], ])) - ->withEntry('expiration_at', ref('created_at')->modifyDateTime('last day of this month')) + ->withColumn('expiration_at', ref('created_at')->modifyDateTime('last day of this month')) ->fetch() ->toArray(); @@ -54,7 +54,7 @@ public function test_concat_on_nulls(): void ['id' => 1, 'array' => ['field' => 'value']], ['id' => 2], ])) - ->withEntry('concat', concat(lit(null), lit(null))) + ->withColumn('concat', concat(lit(null), lit(null))) ->drop('array') ->write(to_memory($memory = new ArrayMemory())) ->run(); @@ -75,7 +75,7 @@ public function test_concat_on_stringable_value(): void ['id' => 1, 'array' => ['field' => 'value']], ['id' => 2], ])) - ->withEntry('concat', optional(concat(ref('id'), '-', array_get(ref('array'), 'field')))) + ->withColumn('concat', optional(concat(ref('id'), '-', array_get(ref('array'), 'field')))) ->drop('array') ->write(to_memory($memory = new ArrayMemory())) ->run(); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/NotTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/NotTest.php index a6815ee865..28ed0910ea 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/NotTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/NotTest.php @@ -26,7 +26,7 @@ public function test_not(): void ['id' => 3], ['id' => 4, 'array' => ['a' => 1, 'b' => 2, 'c' => 3]], ])) - ->withEntry('result', when(not(ref('array')->isNotNull()), lit('not found'), lit('found'))) + ->withColumn('result', when(not(ref('array')->isNotNull()), lit('not found'), lit('found'))) ->drop('array') ->write(to_memory($memory = new ArrayMemory())) ->run(); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/OnEachTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/OnEachTest.php index fa8e4d1cb0..e3d9cc8abc 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/OnEachTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/OnEachTest.php @@ -21,7 +21,7 @@ public function test_on_each_function(): void ['array' => ['a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5]], ['array' => ['f' => 1, 'g' => 2.3, 'h' => 3, 'i' => 4, 'j' => null]], ])) - ->withEntry('array', ref('array')->onEach(optional(ref('element')->cast(type_string())))) + ->withColumn('array', ref('array')->onEach(optional(ref('element')->cast(type_string())))) ->fetch() ->toArray(); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/PrependTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/PrependTest.php index b9091c4b9b..ff98ecb44f 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/PrependTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/PrependTest.php @@ -21,7 +21,7 @@ public function test_prepend_basic_operation(): void ->read(from_array([ ['name' => 'Doe'], ])) - ->withEntry('greeting', ref('name')->prepend(lit('Mr. '))) + ->withColumn('greeting', ref('name')->prepend(lit('Mr. '))) ->write(to_memory($memory = new ArrayMemory())) ->run(); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/RegexAllTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/RegexAllTest.php index 1432dbced7..ccd30a39a8 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/RegexAllTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/RegexAllTest.php @@ -22,7 +22,7 @@ public function test_regex_all(): void ->read(from_array([ ['key' => '124.23 EUR 12 USD 45 PLN'], ])) - ->withEntry('result', ref('key')->regexAll(lit('/(\d+(?:\.\d+)?)\s+([A-Z]{3})/'))) + ->withColumn('result', ref('key')->regexAll(lit('/(\d+(?:\.\d+)?)\s+([A-Z]{3})/'))) ->write(to_memory($memory = new ArrayMemory())) ->run(); @@ -47,7 +47,7 @@ public function test_regex_all_on_non_string_key(): void ->read(from_array([ ['id' => 1], ])) - ->withEntry('regex', optional(ref('id')->regexAll(lit('1')))) + ->withColumn('regex', optional(ref('id')->regexAll(lit('1')))) ->write(to_memory($memory = new ArrayMemory())) ->run(); @@ -65,7 +65,7 @@ public function test_regex_all_on_non_string_value(): void ->read(from_array([ ['id' => '1'], ])) - ->withEntry('regex', optional(ref('id')->regexAll(lit(1)))) + ->withColumn('regex', optional(ref('id')->regexAll(lit(1)))) ->write(to_memory($memory = new ArrayMemory())) ->run(); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/RegexMatchAllTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/RegexMatchAllTest.php index 8452962847..76979b95b0 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/RegexMatchAllTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/RegexMatchAllTest.php @@ -22,7 +22,7 @@ public function test_regex_all(): void ->read(from_array([ ['key' => 'value'], ])) - ->withEntry('preg_match', ref('key')->regexMatchAll(lit('/a/'))) + ->withColumn('preg_match', ref('key')->regexMatchAll(lit('/a/'))) ->write(to_memory($memory = new ArrayMemory())) ->run(); @@ -40,7 +40,7 @@ public function test_regex_all_on_non_integer_flags(): void ->read(from_array([ ['key' => 'value'], ])) - ->withEntry('preg_match', optional(ref('key')->regexMatchAll(lit('1'), lit('1')))) + ->withColumn('preg_match', optional(ref('key')->regexMatchAll(lit('1'), lit('1')))) ->write(to_memory($memory = new ArrayMemory())) ->run(); @@ -58,7 +58,7 @@ public function test_regex_all_on_non_string_key(): void ->read(from_array([ ['id' => 1], ])) - ->withEntry('preg_match', optional(ref('id')->regexMatchAll(lit('1')))) + ->withColumn('preg_match', optional(ref('id')->regexMatchAll(lit('1')))) ->write(to_memory($memory = new ArrayMemory())) ->run(); @@ -76,7 +76,7 @@ public function test_regex_all_on_non_string_value(): void ->read(from_array([ ['id' => '1'], ])) - ->withEntry('preg_match', optional(ref('id')->regexMatchAll(lit(1)))) + ->withColumn('preg_match', optional(ref('id')->regexMatchAll(lit(1)))) ->write(to_memory($memory = new ArrayMemory())) ->run(); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/RegexMatchTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/RegexMatchTest.php index 0c64c6dc7c..a1c614d17d 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/RegexMatchTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/RegexMatchTest.php @@ -22,7 +22,7 @@ public function test_regex_match(): void ->read(from_array([ ['key' => 'value'], ])) - ->withEntry('preg_match', ref('key')->regexMatch(lit('/a/'))) + ->withColumn('preg_match', ref('key')->regexMatch(lit('/a/'))) ->write(to_memory($memory = new ArrayMemory())) ->run(); @@ -40,7 +40,7 @@ public function test_regex_match_on_non_string_key(): void ->read(from_array([ ['id' => 1], ])) - ->withEntry('preg_match', optional(ref('id')->regexMatch(lit('1')))) + ->withColumn('preg_match', optional(ref('id')->regexMatch(lit('1')))) ->write(to_memory($memory = new ArrayMemory())) ->run(); @@ -58,7 +58,7 @@ public function test_regex_match_on_non_string_value(): void ->read(from_array([ ['id' => '1'], ])) - ->withEntry('preg_match', optional(ref('id')->regexMatch(lit(1)))) + ->withColumn('preg_match', optional(ref('id')->regexMatch(lit(1)))) ->write(to_memory($memory = new ArrayMemory())) ->run(); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/RegexReplaceTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/RegexReplaceTest.php index c01cf7f69c..44fa3f89dc 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/RegexReplaceTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/RegexReplaceTest.php @@ -22,7 +22,7 @@ public function test_regex_replace(): void ->read(from_array([ ['key' => 'value'], ])) - ->withEntry('preg_replace', ref('key')->regexReplace(lit('/e/'), lit('es'))) + ->withColumn('preg_replace', ref('key')->regexReplace(lit('/e/'), lit('es'))) ->write(to_memory($memory = new ArrayMemory())) ->run(); @@ -40,7 +40,7 @@ public function test_regex_replace_on_non_string_key(): void ->read(from_array([ ['id' => 1], ])) - ->withEntry('preg_replace', optional(ref('id')->regexReplace(lit('1'), lit(1)))) + ->withColumn('preg_replace', optional(ref('id')->regexReplace(lit('1'), lit(1)))) ->write(to_memory($memory = new ArrayMemory())) ->run(); @@ -58,7 +58,7 @@ public function test_regex_replace_on_non_string_value(): void ->read(from_array([ ['id' => '1'], ])) - ->withEntry('preg_replace', optional(ref('id')->regexReplace(lit(1), lit('1')))) + ->withColumn('preg_replace', optional(ref('id')->regexReplace(lit(1), lit('1')))) ->write(to_memory($memory = new ArrayMemory())) ->run(); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/RegexTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/RegexTest.php index 7cd5696891..8956f716b7 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/RegexTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/RegexTest.php @@ -22,7 +22,7 @@ public function test_regex(): void ->read(from_array([ ['key' => 'value'], ])) - ->withEntry('result', ref('key')->regex(lit('/lue/'))) + ->withColumn('result', ref('key')->regex(lit('/lue/'))) ->write(to_memory($memory = new ArrayMemory())) ->run(); @@ -40,7 +40,7 @@ public function test_regex_on_non_string_key(): void ->read(from_array([ ['id' => 1], ])) - ->withEntry('regex', optional(ref('id')->regex(lit('1')))) + ->withColumn('regex', optional(ref('id')->regex(lit('1')))) ->write(to_memory($memory = new ArrayMemory())) ->run(); @@ -58,7 +58,7 @@ public function test_regex_on_non_string_value(): void ->read(from_array([ ['id' => '1'], ])) - ->withEntry('regex', optional(ref('id')->regex(lit(1)))) + ->withColumn('regex', optional(ref('id')->regex(lit(1)))) ->write(to_memory($memory = new ArrayMemory())) ->run(); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/RepeatTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/RepeatTest.php index 2f8aa6611a..e540e90141 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/RepeatTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/RepeatTest.php @@ -29,8 +29,8 @@ public function test_repeat(): void ['text' => null, 'times' => 3], ['text' => 'world', 'times' => 1], ])) - ->withEntry('repeated', optional(ref('text')->repeat(ref('times')))) - ->withEntry('repeated_fixed', optional(ref('text')->repeat(2))) + ->withColumn('repeated', optional(ref('text')->repeat(ref('times')))) + ->withColumn('repeated_fixed', optional(ref('text')->repeat(2))) ->write(to_memory($memory = new ArrayMemory())) ->run(); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/ReverseTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/ReverseTest.php index cd7563468d..dd390f4211 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/ReverseTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/ReverseTest.php @@ -25,7 +25,7 @@ public function test_reverse(): void ['text' => ''], ['text' => null], ])) - ->withEntry('reversed', optional(ref('text')->reverse())) + ->withColumn('reversed', optional(ref('text')->reverse())) ->write(to_memory($memory = new ArrayMemory())) ->run(); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/SanitizeTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/SanitizeTest.php index e29bbbc7c9..aa7c8c8840 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/SanitizeTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/SanitizeTest.php @@ -22,7 +22,7 @@ public function test_sanitize_on_non_string_key(): void ->read(from_array([ ['id' => 1], ])) - ->withEntry('sanitize', optional(ref('id')->sanitize(lit('1')))) + ->withColumn('sanitize', optional(ref('id')->sanitize(lit('1')))) ->write(to_memory($memory = new ArrayMemory())) ->run(); @@ -40,7 +40,7 @@ public function test_sanitize_with_skip_characters(): void ->read(from_array([ ['key' => 'value'], ])) - ->withEntry('sanitize', ref('key')->sanitize(lit('*'), lit(2))) + ->withColumn('sanitize', ref('key')->sanitize(lit('*'), lit(2))) ->write(to_memory($memory = new ArrayMemory())) ->run(); @@ -58,7 +58,7 @@ public function test_sanitize_without_skip_characters(): void ->read(from_array([ ['key' => 'value'], ])) - ->withEntry('sanitize', ref('key')->sanitize(lit('*'))) + ->withColumn('sanitize', ref('key')->sanitize(lit('*'))) ->write(to_memory($memory = new ArrayMemory())) ->run(); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/SizeTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/SizeTest.php index b4113aa412..c96e8effc6 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/SizeTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/SizeTest.php @@ -20,7 +20,7 @@ public function test_count_on_array(): void ->read(from_array([ ['array' => [1, 2, 3]], ])) - ->withEntry('count', ref('array')->size()) + ->withColumn('count', ref('array')->size()) ->write(to_memory($memory = new ArrayMemory())) ->run(); @@ -38,7 +38,7 @@ public function test_count_on_non_countable(): void ->read(from_array([ ['key' => 1], ])) - ->withEntry('count', ref('key')->size()) + ->withColumn('count', ref('key')->size()) ->write(to_memory($memory = new ArrayMemory())) ->run(); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/SplitTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/SplitTest.php index dd89c2a669..d7f1a552cc 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/SplitTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/SplitTest.php @@ -22,7 +22,7 @@ public function test_split(): void ->read(from_array([ ['key' => '1-2'], ])) - ->withEntry('split', split(ref('key'), '-')) + ->withColumn('split', split(ref('key'), '-')) ->write(to_memory($memory = new ArrayMemory())) ->run(); @@ -40,7 +40,7 @@ public function test_split_on_non_string_value(): void ->read(from_array([ ['key' => 1], ])) - ->withEntry('split', optional(split(ref('key'), '-'))) + ->withColumn('split', optional(split(ref('key'), '-'))) ->write(to_memory($memory = new ArrayMemory())) ->run(); @@ -58,7 +58,7 @@ public function test_split_with_missing_separator(): void ->read(from_array([ ['key' => '1'], ])) - ->withEntry('split', split(ref('key'), '-')) + ->withColumn('split', split(ref('key'), '-')) ->write(to_memory($memory = new ArrayMemory())) ->run(); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/SprintfTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/SprintfTest.php index d9c4671ec0..9e1c4eff61 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/SprintfTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/SprintfTest.php @@ -22,7 +22,7 @@ public function test_sprintf(): void ->read(from_array([ ['key' => 'test %s'], ])) - ->withEntry('sprintf', ref('key')->sprintf(lit('value'))) + ->withColumn('sprintf', ref('key')->sprintf(lit('value'))) ->write(to_memory($memory = new ArrayMemory())) ->run(); @@ -40,7 +40,7 @@ public function test_sprintf_on_non_string_key(): void ->read(from_array([ ['id' => 1], ])) - ->withEntry('sprintf', optional(ref('id')->sprintf(lit('1')))) + ->withColumn('sprintf', optional(ref('id')->sprintf(lit('1')))) ->write(to_memory($memory = new ArrayMemory())) ->run(); @@ -58,7 +58,7 @@ public function test_sprintf_on_null_value(): void ->read(from_array([ ['id' => '1'], ])) - ->withEntry('sprintf', optional(ref('id')->sprintf(lit(null)))) + ->withColumn('sprintf', optional(ref('id')->sprintf(lit(null)))) ->write(to_memory($memory = new ArrayMemory())) ->run(); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/StartsWithTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/StartsWithTest.php index 61d237b04f..e85d6dc204 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/StartsWithTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/StartsWithTest.php @@ -22,7 +22,7 @@ public function test_starts_with(): void ->read(from_array([ ['key' => 'value'], ])) - ->withEntry('starts_with', ref('key')->startsWith(lit('v'))) + ->withColumn('starts_with', ref('key')->startsWith(lit('v'))) ->write(to_memory($memory = new ArrayMemory())) ->run(); @@ -40,7 +40,7 @@ public function test_starts_with_on_non_string_key(): void ->read(from_array([ ['id' => 1], ])) - ->withEntry('starts_with', optional(ref('id')->startsWith(lit('1')))) + ->withColumn('starts_with', optional(ref('id')->startsWith(lit('1')))) ->write(to_memory($memory = new ArrayMemory())) ->run(); @@ -58,7 +58,7 @@ public function test_starts_with_on_non_string_value(): void ->read(from_array([ ['id' => '1'], ])) - ->withEntry('starts_with', optional(ref('id')->startsWith(lit(1)))) + ->withColumn('starts_with', optional(ref('id')->startsWith(lit(1)))) ->write(to_memory($memory = new ArrayMemory())) ->run(); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/StrPadTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/StrPadTest.php index 1a97705543..a6165676ea 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/StrPadTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/StrPadTest.php @@ -20,7 +20,7 @@ public function test_strpad(): void ->read(from_array([ ['key' => 'value'], ])) - ->withEntry('strpad', ref('key')->strPad(10, '*')) + ->withColumn('strpad', ref('key')->strPad(10, '*')) ->write(to_memory($memory = new ArrayMemory())) ->run(); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/StrReplaceTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/StrReplaceTest.php index f6c1472b12..b366077d4b 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/StrReplaceTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/StrReplaceTest.php @@ -20,7 +20,7 @@ public function test_str_replace(): void ->read(from_array([ ['key' => 'value'], ])) - ->withEntry('str_replace', ref('key')->strReplace('e', 'es')) + ->withColumn('str_replace', ref('key')->strReplace('e', 'es')) ->write(to_memory($memory = new ArrayMemory())) ->run(); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/StringContainsAnyTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/StringContainsAnyTest.php index 0f93ccfc89..b5f55752ec 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/StringContainsAnyTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/StringContainsAnyTest.php @@ -30,7 +30,7 @@ public function test_contains_any(): void ['text' => 'hello🚀world', 'needles' => ['🚀', 'bar']], ['text' => 'testing', 'needles' => ['test', 'ing']], ])) - ->withEntry('contains_any', optional(ref('text')->stringContainsAny(ref('needles')))) + ->withColumn('contains_any', optional(ref('text')->stringContainsAny(ref('needles')))) ->write(to_memory($memory = new ArrayMemory())) ->run(); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/StringEqualsToTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/StringEqualsToTest.php index 2e764c7014..727f392195 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/StringEqualsToTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/StringEqualsToTest.php @@ -30,7 +30,7 @@ public function test_equals_to(): void ['text' => 'hello', 'compare' => null], ['text' => '🚀🌟', 'compare' => '🚀🌟'], ])) - ->withEntry('equals', optional(ref('text')->stringEqualsTo(ref('compare')))) + ->withColumn('equals', optional(ref('text')->stringEqualsTo(ref('compare')))) ->write(to_memory($memory = new ArrayMemory())) ->run(); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/StringMatchAllTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/StringMatchAllTest.php index 3688658857..674e705ce6 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/StringMatchAllTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/StringMatchAllTest.php @@ -23,7 +23,7 @@ public function test_string_match_all_multiple_rows(): void ['text' => 'no prices here'], ['text' => 'total: 100.00'], ])) - ->withEntry('match_results', ref('text')->stringMatchAll(lit('/\d+\.\d+/'))) + ->withColumn('match_results', ref('text')->stringMatchAll(lit('/\d+\.\d+/'))) ->write(to_memory($memory = new ArrayMemory())) ->run(); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/StringMatchTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/StringMatchTest.php index bbc7cd0ba7..c24fc7fd8d 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/StringMatchTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/StringMatchTest.php @@ -23,7 +23,7 @@ public function test_string_match_multiple_rows(): void ['text' => 'foo bar'], ['text' => 'hello universe'], ])) - ->withEntry('match_result', ref('text')->stringMatch(lit('/hello/'))) + ->withColumn('match_result', ref('text')->stringMatch(lit('/hello/'))) ->write(to_memory($memory = new ArrayMemory())) ->run(); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/StringNormalizeTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/StringNormalizeTest.php index 73d640ead4..e9ca4f9037 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/StringNormalizeTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/StringNormalizeTest.php @@ -29,7 +29,7 @@ public function test_normalize_nfc(): void ['text' => 'καλημέρα'], ['text' => '👋🏻'], ])) - ->withEntry('normalized', optional(ref('text')->stringNormalize())) + ->withColumn('normalized', optional(ref('text')->stringNormalize())) ->write(to_memory($memory = new ArrayMemory())) ->run(); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/StringWidthTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/StringWidthTest.php index 9d53fe4b02..c0c75898a0 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/StringWidthTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/StringWidthTest.php @@ -30,7 +30,7 @@ public function test_width(): void ['text' => 'hello中文'], ['text' => '!'], ])) - ->withEntry('width', optional(ref('text')->stringWidth())) + ->withColumn('width', optional(ref('text')->stringWidth())) ->write(to_memory($memory = new ArrayMemory())) ->run(); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/Structure/StructureSelectTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/Structure/StructureSelectTest.php index 79574d3a53..ddacb082a3 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/Structure/StructureSelectTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/Structure/StructureSelectTest.php @@ -60,7 +60,7 @@ public function test_structure_keep(): void ], ], ])) - ->withEntry('user', structure_ref('user')->select('id', 'email', 'tags')) + ->withColumn('user', structure_ref('user')->select('id', 'email', 'tags')) ->fetch(); static::assertEquals( diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/Structure/StructureTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/Structure/StructureTest.php index f441984f74..baa3dcdae2 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/Structure/StructureTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/Structure/StructureTest.php @@ -29,7 +29,7 @@ public function test_structure_column_from_flat_columns(): void [['line_id' => 'li-1', 'quantity' => 2], ['line_id' => 'li-2', 'quantity' => null]], schema(str_schema('line_id'), int_schema('quantity', nullable: true)), )) - ->withEntry('line_item', structure(['id' => ref('line_id'), 'quantity' => ref('quantity')])); + ->withColumn('line_item', structure(['id' => ref('line_id'), 'quantity' => ref('quantity')])); static::assertEquals( schema( @@ -55,7 +55,7 @@ public function test_structure_with_numeric_keys(): void { $frame = static fn(): DataFrame => df() ->read(from_array([['id' => 1, 'city' => 'Krakow']], schema(int_schema('id'), str_schema('city')))) - ->withEntry('user', structure([5 => ref('id'), 7 => ref('city')])); + ->withColumn('user', structure([5 => ref('id'), 7 => ref('city')])); static::assertSame('structure{5: integer, 7: string}', $frame()->schema()->get('user')->type()->toString()); static::assertSame( @@ -68,7 +68,7 @@ public function test_nested_structure(): void { $frame = static fn(): DataFrame => df() ->read(from_array([['id' => 1, 'city' => 'Krakow']], schema(int_schema('id'), str_schema('city')))) - ->withEntry('user', structure(['id' => ref('id'), 'address' => structure(['city' => ref('city')])])); + ->withColumn('user', structure(['id' => ref('id'), 'address' => structure(['city' => ref('city')])])); static::assertSame( 'structure{id: integer, address: structure{city: string}}', diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/ToLowerTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/ToLowerTest.php index 9f8aea9ed2..002064b8d4 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/ToLowerTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/ToLowerTest.php @@ -20,7 +20,7 @@ public function test_to_lower(): void ->read(from_array([ ['key' => 'VALUE'], ])) - ->withEntry('to_lower', ref('key')->lower()) + ->withColumn('to_lower', ref('key')->lower()) ->write(to_memory($memory = new ArrayMemory())) ->run(); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/ToUpperTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/ToUpperTest.php index 67e71b5464..572f56cf86 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/ToUpperTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/ToUpperTest.php @@ -20,7 +20,7 @@ public function test_to_upper(): void ->read(from_array([ ['key' => 'value'], ])) - ->withEntry('to_upper', ref('key')->upper()) + ->withColumn('to_upper', ref('key')->upper()) ->write(to_memory($memory = new ArrayMemory())) ->run(); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/TrimTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/TrimTest.php index 1eaaf4b3ea..b61da87442 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/TrimTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/TrimTest.php @@ -21,7 +21,7 @@ public function test_trim_both(): void ->read(from_array([ ['key' => ' value '], ])) - ->withEntry('trim', ref('key')->trim()) + ->withColumn('trim', ref('key')->trim()) ->write(to_memory($memory = new ArrayMemory())) ->run(); @@ -39,7 +39,7 @@ public function test_trim_custom_characters(): void ->read(from_array([ ['key' => '-value '], ])) - ->withEntry('trim', ref('key')->trim(characters: '-')) + ->withColumn('trim', ref('key')->trim(characters: '-')) ->write(to_memory($memory = new ArrayMemory())) ->run(); @@ -57,7 +57,7 @@ public function test_trim_left(): void ->read(from_array([ ['key' => ' value '], ])) - ->withEntry('trim', ref('key')->trim(Type::LEFT)) + ->withColumn('trim', ref('key')->trim(Type::LEFT)) ->write(to_memory($memory = new ArrayMemory())) ->run(); @@ -75,7 +75,7 @@ public function test_trim_right(): void ->read(from_array([ ['key' => ' value '], ])) - ->withEntry('trim', ref('key')->trim(Type::RIGHT)) + ->withColumn('trim', ref('key')->trim(Type::RIGHT)) ->write(to_memory($memory = new ArrayMemory())) ->run(); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/TruncateTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/TruncateTest.php index 94329ffacd..55934e663a 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/TruncateTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/TruncateTest.php @@ -26,8 +26,8 @@ public function test_truncate(): void ['text' => '', 'length' => 5], ['text' => null, 'length' => 5], ])) - ->withEntry('truncated', optional(ref('text')->truncate(ref('length')))) - ->withEntry('truncated_custom', optional(ref('text')->truncate(ref('length'), '>>'))) + ->withColumn('truncated', optional(ref('text')->truncate(ref('length')))) + ->withColumn('truncated_custom', optional(ref('text')->truncate(ref('length'), '>>'))) ->write(to_memory($memory = new ArrayMemory())) ->run(); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/UnicodeLengthTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/UnicodeLengthTest.php index daf1829c95..e20f773b1a 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/UnicodeLengthTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/UnicodeLengthTest.php @@ -34,7 +34,7 @@ public function test_unicode_length(): void ['text' => '👋🏻'], ['text' => '👨‍👩‍👧‍👦'], ])) - ->withEntry('unicode_length', optional(ref('text')->unicodeLength())) + ->withColumn('unicode_length', optional(ref('text')->unicodeLength())) ->write(to_memory($memory = new ArrayMemory())) ->run(); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/UntypedIntermediateTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/UntypedIntermediateTest.php index 06a62b3c7e..fd2da2814a 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/UntypedIntermediateTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/UntypedIntermediateTest.php @@ -39,7 +39,7 @@ public function test_a_parent_of_an_untyped_node_runs(ScalarFunction $tree, stri { $rows = data_frame() ->read(from_array([['j' => '{"name":"ann","tags":["a","b"],"n":3}']], schema(json_schema('j')))) - ->withEntry('x', $tree) + ->withColumn('x', $tree) ->fetch(); static::assertSame($type, $rows->schema()->get('x')->type()->toString()); @@ -52,7 +52,7 @@ public function test_storing_an_untyped_node_is_refused_at_bind(): void data_frame() ->read(from_array([['j' => '{"name":"ann"}']], schema(json_schema('j')))) - ->withEntry('x', ref('j')->jsonDecode()->arrayGet('name')) + ->withColumn('x', ref('j')->jsonDecode()->arrayGet('name')) ->fetch(); } } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/WhenTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/WhenTest.php index f0d2ab0684..db670aeff8 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/WhenTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/WhenTest.php @@ -21,7 +21,7 @@ public function test_when_odd_even(): void df() ->read(from_sequence_number('id', 1, 10)) ->collect() - ->withEntry('type', when(ref('id')->isOdd(), lit('odd'), lit('even'))) + ->withColumn('type', when(ref('id')->isOdd(), lit('odd'), lit('even'))) ->write(to_memory($memory = new ArrayMemory())) ->run(); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/WordwrapTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/WordwrapTest.php index 525c245f1a..30e1bf149b 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/WordwrapTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Function/WordwrapTest.php @@ -20,7 +20,7 @@ public function test_wordwrap_in_dataframe_operations(): void ['text' => 'Hello World Test', 'width' => 10], ['text' => 'PHP is awesome', 'width' => 8], ])) - ->withEntry('wrapped_text', ref('text')->wordwrap(ref('width'))); + ->withColumn('wrapped_text', ref('text')->wordwrap(ref('width'))); static::assertEquals( [ diff --git a/src/core/etl/tests/Flow/ETL/Tests/Integration/Window/WindowFunctionsTest.php b/src/core/etl/tests/Flow/ETL/Tests/Integration/Window/WindowFunctionsTest.php index 4c092f8446..83cd6283de 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Integration/Window/WindowFunctionsTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Integration/Window/WindowFunctionsTest.php @@ -47,7 +47,7 @@ public function test_rank_on_partitioned_window(): void ['id' => 6, 'name' => 'Janet', 'department' => 'Finances', 'salary' => 4000], ]), )) - ->withEntry( + ->withColumn( 'rank', dense_rank()->over(window()->partitionBy(ref('department'))->orderBy(ref('salary')->desc())), ) @@ -82,7 +82,7 @@ public function test_rank_without_partitioning(): void ['id' => 6, 'name' => 'Janet', 'department' => 'Finances', 'salary' => 4000], ]), )) - ->withEntry('rank', rank()->over(window()->orderBy(ref('salary')->desc()))) + ->withColumn('rank', rank()->over(window()->orderBy(ref('salary')->desc()))) ->get(); static::assertSame( @@ -180,7 +180,7 @@ public function test_window_partitions_on_datetime_keep_full_precision(): void ['at' => new DateTimeImmutable('2024-01-01 09:00:00'), 'amount' => 3], ['at' => new DateTimeImmutable('2024-01-01 21:00:00'), 'amount' => 4], ])) - ->withEntry('n', sum(ref('amount'))->over(window()->partitionBy(ref('at'))->orderBy(ref('amount')))) + ->withColumn('n', sum(ref('amount'))->over(window()->partitionBy(ref('at'))->orderBy(ref('amount')))) ->fetch() ->toArray(); @@ -208,7 +208,7 @@ public function test_window_partitions_survive_interleaved_input(): void ['region' => 'us', 'amount' => 20], ['region' => 'eu', 'amount' => 3], ])) - ->withEntry('total', sum(ref('amount'))->over(window()->partitionBy(ref('region')))) + ->withColumn('total', sum(ref('amount'))->over(window()->partitionBy(ref('region')))) ->fetch() ->toArray(); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Mother/NodeMother.php b/src/core/etl/tests/Flow/ETL/Tests/Mother/NodeMother.php index 52609e04e7..2eccad9b7b 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Mother/NodeMother.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Mother/NodeMother.php @@ -68,9 +68,9 @@ public static function read(?Extractor $extractor = null): Read return new Read($extractor ?? from_array([['id' => 1]])); } - public static function select(Node $input, string ...$entries): Select + public static function select(Node $input, string ...$columns): Select { - return new Select($input, $entries === [] ? ['id'] : array_values($entries)); + return new Select($input, $columns === [] ? ['id'] : array_values($columns)); } public static function sort(Node $input, ?References $refs = null): Sort diff --git a/src/core/etl/tests/Flow/ETL/Tests/Mother/RowsMother.php b/src/core/etl/tests/Flow/ETL/Tests/Mother/RowsMother.php index 4b69b1be0f..0b73a935f0 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Mother/RowsMother.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Mother/RowsMother.php @@ -75,7 +75,7 @@ public static function sequentialIds(int $count): Rows /** * One row whose "array_entry" structure nests a structure: {id, status, enabled, array: {foo}}. */ - public static function arrayEntry(): Rows + public static function arrayColumn(): Rows { return array_to_rows([[ 'array_entry' => ['id' => 1, 'status' => 'PENDING', 'enabled' => true, 'array' => ['foo' => 'bar']], diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Bucketing/KeyValuesTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Bucketing/KeyValuesTest.php index 39dbca4b29..7f5cf490e0 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Bucketing/KeyValuesTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Bucketing/KeyValuesTest.php @@ -20,7 +20,7 @@ final class KeyValuesTest extends FlowTestCase public function test_a_missing_ref_throws(): void { $this->expectException(SchemaDefinitionNotFoundException::class); - $this->expectExceptionMessage('Schema definition for entry "id" not found'); + $this->expectExceptionMessage('Schema definition for column "id" not found'); (new KeyValues([ref('id')]))->of(array_to_rows([['name' => 'flow']], schema(str_schema('name')))); } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Cache/CacheIndexTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Cache/CacheIndexTest.php index 8fe275a0bd..54948a8196 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Cache/CacheIndexTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Cache/CacheIndexTest.php @@ -70,7 +70,7 @@ public function test_from_rows_with_missing_key_entry_throws(): void public function test_from_rows_with_non_string_key_entry_throws(): void { $this->expectException(InvalidArgumentException::class); - $this->expectExceptionMessage('CacheIndex expects rows with a string "key" entry, got: null'); + $this->expectExceptionMessage('CacheIndex expects rows with a string "key" column, got: null'); CacheIndex::fromRows('dataset-id', array_to_rows([['key' => null]], schema(str_schema('key', nullable: true)))); } @@ -78,7 +78,7 @@ public function test_from_rows_with_non_string_key_entry_throws(): void public function test_from_rows_with_non_integer_rows_entry_throws(): void { $this->expectException(InvalidArgumentException::class); - $this->expectExceptionMessage('CacheIndex expects rows with an integer "rows" entry, got: string'); + $this->expectExceptionMessage('CacheIndex expects rows with an integer "rows" column, got: string'); CacheIndex::fromRows('dataset-id', array_to_rows( [['key' => 'chunk-1', 'rows' => 'three']], diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/DataFrameTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/DataFrameTest.php index 42729b4564..2e95611e0b 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/DataFrameTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/DataFrameTest.php @@ -28,7 +28,7 @@ use Flow\ETL\Schema\Validator\SelectiveValidator; use Flow\ETL\Sink\Branched; use Flow\ETL\Sink\Transformed; -use Flow\ETL\Tests\Double\AddStampToStringEntryTransformer; +use Flow\ETL\Tests\Double\AddStampToStringColumnTransformer; use Flow\ETL\Tests\Double\CallbackTransformation; use Flow\ETL\Tests\Double\CallOrderLoader; use Flow\ETL\Tests\Double\RecordingErrorHandler; @@ -101,7 +101,7 @@ public function test_batch_size(): void ])) ->batchSize(1) ->load($spy) - ->withEntry('element', ref('elements')->expand()) + ->withColumn('element', ref('elements')->expand()) ->batchSize(3) ->forEach(function (Rows $rows): void { $this->assertLessThanOrEqual(3, $rows->count()); @@ -250,7 +250,7 @@ public function test_encapsulate_transformations(): void ->rows(new class implements Transformation { public function transform(DataFrame $dataFrame): DataFrame { - return $dataFrame->withEntry('country', ref('country')->lower())->withEntry('age', ref( + return $dataFrame->withColumn('country', ref('country')->lower())->withColumn('age', ref( 'age', )->divide(lit(10), scale: 2)); } @@ -450,7 +450,7 @@ public function statistics(): Statistics return new Statistics(); } }) - ->withEntry('odd', ref('id')->mod(lit(2))->equals(lit(0))) + ->withColumn('odd', ref('id')->mod(lit(2))->equals(lit(0))) ->fetch(); static::assertCount(10, $rows); @@ -576,9 +576,9 @@ public function transform(Rows $rows, FlowContext $context): Rows throw new RuntimeException('Unexpected exception'); } }) - ->rows(AddStampToStringEntryTransformer::divideBySemicolon('stamp', 'one')) - ->rows(AddStampToStringEntryTransformer::divideBySemicolon('stamp', 'two')) - ->rows(AddStampToStringEntryTransformer::divideBySemicolon('stamp', 'three')) + ->rows(AddStampToStringColumnTransformer::divideBySemicolon('stamp', 'one')) + ->rows(AddStampToStringColumnTransformer::divideBySemicolon('stamp', 'two')) + ->rows(AddStampToStringColumnTransformer::divideBySemicolon('stamp', 'three')) ->write($loader) ->run(); @@ -951,7 +951,7 @@ public function test_a_pushed_limit_reaches_extract_and_leaves_the_users_extract ); $frame = df() ->read($extractor) - ->withEntry('doubled', ref('id')->multiply(lit(2))) + ->withColumn('doubled', ref('id')->multiply(lit(2))) ->limit(1); $frame->schema(); @@ -1073,7 +1073,7 @@ public function test_a_sink_that_cannot_describe_its_rows_does_not_hide_the_fram { $frame = df() ->read(from_array([['id' => 1], ['id' => 2]], schema(int_schema('id')))) - ->withEntry('double', ref('id')->multiply(lit(2))) + ->withColumn('double', ref('id')->multiply(lit(2))) ->write(to_transformation(new CallbackTransformation(static fn(DataFrame $df): DataFrame => $df->joinEach( new StaticDataFrameFactory(df()->read(from_array([['id' => 1, 'name' => 'a']]))), join_on(['id' => 'id'], 'joined_'), diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/ETLErrorHandlingTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/ETLErrorHandlingTest.php index b336040b35..4ebb46d3b8 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/ETLErrorHandlingTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/ETLErrorHandlingTest.php @@ -218,7 +218,7 @@ public function test_skip_rows_handler_does_not_emit_the_half_transformed_batch( schema(int_schema('id'), str_schema('v')), )->withBatchSize(1)) ->onError(skip_rows_handler()) - ->withEntry('doubled', ref('v')->cast('integer')->multiply(lit(2))) + ->withColumn('doubled', ref('v')->cast('integer')->multiply(lit(2))) ->fetch(); static::assertSame( diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Exception/InvalidLogicExceptionTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Exception/InvalidLogicExceptionTest.php index de8f463ffa..1d893384dd 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Exception/InvalidLogicExceptionTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Exception/InvalidLogicExceptionTest.php @@ -13,7 +13,7 @@ public function test_cyclic_plan_names_the_operation_and_the_way_out(): void { static::assertSame( 'Cannot run this plan: it reads from a DataFrame that reads back from it. A DataFrame is ' - . 'mutable, so join(), select() and withEntry() can add that edge after both frames exist. Break ' + . 'mutable, so join(), select() and withColumn() can add that edge after both frames exist. Break ' . 'the cycle by reading the nested frame from its own source.', InvalidLogicException::cyclicPlanOnRun()->getMessage(), ); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Exception/SchemaDefinitionNotFoundExceptionTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Exception/SchemaDefinitionNotFoundExceptionTest.php index ff5260ae1e..a4c5e1578e 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Exception/SchemaDefinitionNotFoundExceptionTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Exception/SchemaDefinitionNotFoundExceptionTest.php @@ -14,17 +14,17 @@ public function test_with_available_lists_the_columns(): void $exception = SchemaDefinitionNotFoundException::withAvailable('scoree', 'id', 'score', 'name'); static::assertSame( - 'Schema definition for entry "scoree" not found. Did you mean one of: [score]?', + 'Schema definition for column "scoree" not found. Did you mean one of: [score]?', $exception->getMessage(), ); - static::assertSame('scoree', $exception->entry()); + static::assertSame('scoree', $exception->column()); static::assertSame(['score'], $exception->suggestions()); } public function test_the_single_argument_form_keeps_its_message(): void { static::assertSame( - 'Schema definition for entry "scoree" not found.', + 'Schema definition for column "scoree" not found.', (new SchemaDefinitionNotFoundException('scoree'))->getMessage(), ); } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/ExecutorTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/ExecutorTest.php index 4514ebf5c7..23854c2cf7 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/ExecutorTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/ExecutorTest.php @@ -32,7 +32,7 @@ use Flow\ETL\Tests\Mother\PhysicalPlanMother; use Flow\ETL\Tests\Mother\RowsMother; use Flow\ETL\Transformer\LimitTransformer; -use Flow\ETL\Transformer\RenameEntryTransformer; +use Flow\ETL\Transformer\RenameColumnTransformer; use Flow\Filesystem\Tests\Double\RejectingFilter; use RuntimeException; @@ -95,9 +95,9 @@ public function test_merge_of_empty_batches_keeps_the_last_batch(): void public function test_a_single_pipeline_runs_its_segments_in_order(): void { $segments = new Segments(from_rows(RowsMother::sequentialIds(3))); - $segments->add(new RenameEntryTransformer('id', 'a')); + $segments->add(new RenameColumnTransformer('id', 'a')); $segments->add(new BatchingProcessor(2)); - $segments->add(new RenameEntryTransformer('a', 'b')); + $segments->add(new RenameColumnTransformer('a', 'b')); $segments->add($loader = new SpyLoader()); $batches = iterator_to_array((new Executor())->executePipeline( @@ -111,10 +111,10 @@ public function test_a_single_pipeline_runs_its_segments_in_order(): void public function test_an_input_chain_is_flattened_into_one_generator_chain(): void { $upstream = new Segments(from_rows(RowsMother::sequentialIds(5))); - $upstream->add(new RenameEntryTransformer('id', 'a')); + $upstream->add(new RenameColumnTransformer('id', 'a')); $upstream->add(new BatchingProcessor(2)); $downstream = new Segments(); - $downstream->add(new RenameEntryTransformer('a', 'b')); + $downstream->add(new RenameColumnTransformer('a', 'b')); $downstream->add(new LimitTransformer(3)); $context = NodeMother::context(); @@ -229,7 +229,7 @@ public function test_execute_runs_the_plans_root_pipeline(): void { $segments = new Segments(from_rows(RowsMother::sequentialIds(3))); $segments->add(new BatchingProcessor(2)); - $segments->add(new RenameEntryTransformer('id', 'b')); + $segments->add(new RenameColumnTransformer('id', 'b')); $batches = iterator_to_array((new Executor())->execute( new Described(new Pipeline(0, $segments, NodeMother::context()), schema(int_schema('b'))), diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Extractor/DataFrameExtractorTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Extractor/DataFrameExtractorTest.php index 4bc0922602..5495cdd438 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Extractor/DataFrameExtractorTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Extractor/DataFrameExtractorTest.php @@ -189,7 +189,7 @@ public function test_the_frame_is_frozen_at_construction(): void $inner = df()->read(from_rows(array_to_rows([['id' => 1]], schema(int_schema('id'))))); $extractor = from_data_frame($inner); - $inner->withEntry('doubled', ref('id')->multiply(lit(2))); + $inner->withColumn('doubled', ref('id')->multiply(lit(2))); static::assertSame([['id' => 1]], iterator_to_array($extractor->extract(flow_context(config())))[0]->toArray()); } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/AllFunctionsDeclareTheirTypeTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/AllFunctionsDeclareTheirTypeTest.php index cfea7d17e1..e5f1ece1c9 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/AllFunctionsDeclareTheirTypeTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/AllFunctionsDeclareTheirTypeTest.php @@ -136,7 +136,7 @@ public function test_every_discovered_function_has_a_fixture(): void public function test_the_fixture_schema_is_entirely_nullable(): void { foreach (ScalarFunctionFixtures::schema()->definitions() as $definition) { - static::assertTrue($definition->isNullable(), $definition->entry()->name()); + static::assertTrue($definition->isNullable(), $definition->reference()->name()); } } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ArrayGetCollectionTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ArrayGetCollectionTest.php index 1fba097f60..5a3fd094da 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ArrayGetCollectionTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ArrayGetCollectionTest.php @@ -62,7 +62,7 @@ public function test_getting_keys_from_simple_array(): void $this->expectException(InvalidArgumentException::class); $this->expectExceptionMessage('ArrayGetCollection function failed to evaluate parameters.'); - $rows = RowsMother::arrayEntry(); + $rows = RowsMother::arrayColumn(); (new FunctionContext(flow_context()))->eval( array_get_collection(ref('array_entry'), ['id']), diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ArrayGetTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ArrayGetTest.php index 99882b85f1..b44242a806 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ArrayGetTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ArrayGetTest.php @@ -146,7 +146,7 @@ public function test_array_access_for_not_array_entry_strict_mode(): void public function test_array_accessor_transformer(): void { - $rows = RowsMother::arrayEntry(); + $rows = RowsMother::arrayColumn(); static::assertEquals('bar', (new FunctionContext(flow_context()))->eval( array_get(ref('array_entry'), 'array.foo'), $rows->values(0), diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ArrayKeyRenameTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ArrayKeyRenameTest.php index 2f18854641..3c5dbdb200 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ArrayKeyRenameTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ArrayKeyRenameTest.php @@ -117,7 +117,7 @@ public function test_renames_array_entry_keys_in_multiple_array_entry(): void public function test_renames_array_entry_keys_in_single_array_entry(): void { - $rows = RowsMother::arrayEntry(); + $rows = RowsMother::arrayColumn(); static::assertEquals( [ @@ -136,7 +136,7 @@ public function test_renames_array_entry_keys_in_single_array_entry(): void public function test_throws_exception_for_invalid_path(): void { - $rows = RowsMother::arrayEntry(); + $rows = RowsMother::arrayColumn(); try { (new FunctionContext(flow_context()))->eval( diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/Evaluation/FilterTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/Evaluation/FilterTest.php index c46224a20a..449c818243 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/Evaluation/FilterTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/Evaluation/FilterTest.php @@ -94,7 +94,7 @@ public function test_an_expanding_predicate_is_refused(): void { $this->expectException(InvalidArgumentException::class); $this->expectExceptionMessage( - 'filter() cannot contain array_expand(), it turns one row into many rows. Expand with withEntry() first, then use the new column.', + 'filter() cannot contain array_expand(), it turns one row into many rows. Expand with withColumn() first, then use the new column.', ); Filter::bind(ListColumnsMother::schema(), ref('tags')->expand()->equals(lit('x'))); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ExpandingFunctionsTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ExpandingFunctionsTest.php index ea31b94681..1ef475774d 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ExpandingFunctionsTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ExpandingFunctionsTest.php @@ -55,7 +55,7 @@ public function test_refuse_names_the_site(): void { $this->expectException(InvalidArgumentException::class); $this->expectExceptionMessage( - 'filter() cannot contain array_expand(), it turns one row into many rows. Expand with withEntry() first, then use the new column.', + 'filter() cannot contain array_expand(), it turns one row into many rows. Expand with withColumn() first, then use the new column.', ); (new ExpandingFunctions())->refuse(ref('tags')->expand()->equals(lit('x')), 'filter'); @@ -73,7 +73,7 @@ public function test_refuse_nested_refuses_an_expand_below_an_expand(ScalarFunct { $this->expectException(InvalidArgumentException::class); $this->expectExceptionMessage( - 'array_expand() cannot contain another array_expand(). Expand one level per withEntry().', + 'array_expand() cannot contain another array_expand(). Expand one level per withColumn().', ); (new ExpandingFunctions())->refuseNested($tree); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/OnEachTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/OnEachTest.php index ce7c73f868..1650442eb4 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/OnEachTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/OnEachTest.php @@ -257,7 +257,7 @@ public function test_an_expand_in_the_body_is_refused_when_the_expression_is_bui { $this->expectException(InvalidArgumentException::class); $this->expectExceptionMessage( - 'onEach() cannot contain array_expand(), it turns one row into many rows. Expand with withEntry() first, then use the new column.', + 'onEach() cannot contain array_expand(), it turns one row into many rows. Expand with withColumn() first, then use the new column.', ); ref('lists')->onEach($body); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ReferenceResolverTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ReferenceResolverTest.php index e73f86c951..4e19c66b12 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ReferenceResolverTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Function/ReferenceResolverTest.php @@ -175,7 +175,7 @@ public function test_an_impossible_comparison_fails_at_bind(): void public function test_assert_resolved_names_the_column_and_the_available_ones(): void { $this->expectException(SchemaDefinitionNotFoundException::class); - $this->expectExceptionMessage('Schema definition for entry "scoree" not found. Did you mean one of: [score]?'); + $this->expectExceptionMessage('Schema definition for column "scoree" not found. Did you mean one of: [score]?'); $schema = schema(int_schema('id'), int_schema('score')); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/GroupBy/AggregatorsTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/GroupBy/AggregatorsTest.php index 9e9aeb6c9f..a19a7ccd5d 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/GroupBy/AggregatorsTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/GroupBy/AggregatorsTest.php @@ -58,7 +58,7 @@ public function test_resolved_refuses_an_expand_in_an_aggregate(): void { $this->expectException(InvalidArgumentException::class); $this->expectExceptionMessage( - 'aggregate() cannot contain array_expand(), it turns one row into many rows. Expand with withEntry() first, then use the new column.', + 'aggregate() cannot contain array_expand(), it turns one row into many rows. Expand with withColumn() first, then use the new column.', ); (new Aggregators(new UnenumerableSum(ref('n'), ref('flags')->expand()->equals(lit(true)))))->resolved( diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/GroupBy/DiscoveredPivotValuesTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/GroupBy/DiscoveredPivotValuesTest.php index 995f837462..b02a39fc75 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/GroupBy/DiscoveredPivotValuesTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/GroupBy/DiscoveredPivotValuesTest.php @@ -43,7 +43,7 @@ public function test_it_reads_the_frame_so_a_derived_column_is_visible(): void static::assertSame( ['a!', 'b!'], (new DiscoveredPivotValues())->resolve( - df()->read(from_array([['k' => 'a'], ['k' => 'b']]))->withEntry('k2', concat(ref('k'), lit('!'))), + df()->read(from_array([['k' => 'a'], ['k' => 'b']]))->withColumn('k2', concat(ref('k'), lit('!'))), ref('k2'), )->all(), ); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/GroupBy/GroupByShapeTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/GroupBy/GroupByShapeTest.php index 3d8020eae0..2cf424ae0e 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/GroupBy/GroupByShapeTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/GroupBy/GroupByShapeTest.php @@ -37,7 +37,7 @@ public function test_it_refuses_a_group_column_the_input_does_not_declare(): voi $groupBy->aggregate(sum(ref('age'))); $this->expectException(SchemaDefinitionNotFoundException::class); - $this->expectExceptionMessage('Schema definition for entry "missing" not found'); + $this->expectExceptionMessage('Schema definition for column "missing" not found'); GroupByShape::of($groupBy, schema(str_schema('country'), int_schema('age'))); } @@ -48,7 +48,7 @@ public function test_it_refuses_an_aggregation_over_a_column_the_input_does_not_ $groupBy->aggregate(sum(ref('missing'))); $this->expectException(SchemaDefinitionNotFoundException::class); - $this->expectExceptionMessage('Schema definition for entry "missing" not found'); + $this->expectExceptionMessage('Schema definition for column "missing" not found'); GroupByShape::of($groupBy, schema(str_schema('country'), int_schema('age'))); } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/GroupBy/GroupByStepsTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/GroupBy/GroupByStepsTest.php index f726b80718..456d121727 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/GroupBy/GroupByStepsTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/GroupBy/GroupByStepsTest.php @@ -14,7 +14,7 @@ use Flow\ETL\Tests\Double\SpyBucketsStorage; use Flow\ETL\Tests\Double\UnenumerableSum; use Flow\ETL\Tests\FlowTestCase; -use Flow\ETL\Transformer\PruneEntriesTransformer; +use Flow\ETL\Transformer\PruneColumnsTransformer; use function Flow\ETL\DSL\array_to_rows; use function Flow\ETL\DSL\bool_schema; @@ -55,7 +55,7 @@ public function test_enumerable_references_add_a_pruning_transformer(): void $steps = GroupBySteps::of($groupBy, config()); static::assertCount(2, $steps); - static::assertInstanceOf(PruneEntriesTransformer::class, $steps[0]); + static::assertInstanceOf(PruneColumnsTransformer::class, $steps[0]); static::assertInstanceOf(GroupByAggregationProcessor::class, $steps[1]); } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/GroupBy/PivotShapeTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/GroupBy/PivotShapeTest.php index 4c9a68ce00..0be5641865 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/GroupBy/PivotShapeTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/GroupBy/PivotShapeTest.php @@ -69,7 +69,7 @@ public function test_it_refuses_an_unknown_group_by_column(): void $groupBy->aggregate(sum(ref('a'))); $this->expectException(SchemaDefinitionNotFoundException::class); - $this->expectExceptionMessage('Schema definition for entry "nope" not found'); + $this->expectExceptionMessage('Schema definition for column "nope" not found'); PivotShape::of($groupBy, schema(str_schema('k'), str_schema('p'), int_schema('a'))); } @@ -81,7 +81,7 @@ public function test_it_refuses_an_unknown_aggregate_column(): void $groupBy->aggregate(min(ref('nope'))); $this->expectException(SchemaDefinitionNotFoundException::class); - $this->expectExceptionMessage('Schema definition for entry "nope" not found'); + $this->expectExceptionMessage('Schema definition for column "nope" not found'); PivotShape::of($groupBy, schema(str_schema('k'), str_schema('p'), int_schema('a'))); } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/GroupByTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/GroupByTest.php index 4a9e5e947e..9653150748 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/GroupByTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/GroupByTest.php @@ -341,7 +341,7 @@ public function test_a_group_column_absent_from_the_schema_is_refused_at_bind(): $groupBy->aggregate(count()); $this->expectException(SchemaDefinitionNotFoundException::class); - $this->expectExceptionMessage('Schema definition for entry "missing" not found'); + $this->expectExceptionMessage('Schema definition for column "missing" not found'); GroupByContext::aggregated( $groupBy, diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Join/HashJoin/JoinerTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Join/HashJoin/JoinerTest.php index 8ee649f3e0..c649ee3be3 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Join/HashJoin/JoinerTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Join/HashJoin/JoinerTest.php @@ -318,7 +318,7 @@ public function test_prefix_collision_with_left_column_throws(): void }; $this->expectException(SchemaDefinitionNotUniqueException::class); - $this->expectExceptionMessage('Entry definitions must be unique, duplicated entries: [left_name]'); + $this->expectExceptionMessage('Column definitions must be unique, duplicated columns: [left_name]'); $joiner = new Joiner(join_on(['id' => 'user_id'], join_prefix: 'left_'), Join::inner, new AdaptiveBackend()); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Join/HashJoin/RowMergerTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Join/HashJoin/RowMergerTest.php index 4b9165cd5f..5160393acf 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Join/HashJoin/RowMergerTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Join/HashJoin/RowMergerTest.php @@ -4,7 +4,7 @@ namespace Flow\ETL\Tests\Unit\Join\HashJoin; -use Flow\ETL\Exception\DuplicatedEntriesException; +use Flow\ETL\Exception\DuplicatedColumnsException; use Flow\ETL\Join\HashJoin\RowMerger; use Flow\ETL\Tests\FlowTestCase; @@ -17,8 +17,8 @@ final class RowMergerTest extends FlowTestCase { public function test_collision_between_left_and_right_names_throws(): void { - $this->expectException(DuplicatedEntriesException::class); - $this->expectExceptionMessage('Merged entries names must be unique'); + $this->expectException(DuplicatedColumnsException::class); + $this->expectExceptionMessage('Merged column names must be unique'); (new RowMerger()) ->merge( @@ -73,7 +73,7 @@ public function test_merge_without_prefix_keeps_right_names(): void public function test_prefix_collision_with_left_name_throws(): void { - $this->expectException(DuplicatedEntriesException::class); + $this->expectException(DuplicatedColumnsException::class); (new RowMerger('left_')) ->merge( diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Join/JoinSchemaTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Join/JoinSchemaTest.php index 0ad49db36a..da63751216 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Join/JoinSchemaTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Join/JoinSchemaTest.php @@ -126,7 +126,7 @@ public function test_a_cross_name_collision_suggests_a_prefix(): void { $this->expectException(SchemaDefinitionNotUniqueException::class); $this->expectExceptionMessageMatches( - '/Entry definitions must be unique.*\. Please consider using join prefix option$/', + '/Column definitions must be unique.*\. Please consider using join prefix option$/', ); (new JoinSchema())->cross(schema(int_schema('id')), schema(int_schema('id'))); @@ -136,7 +136,7 @@ public function test_a_keyed_join_name_collision_suggests_a_prefix(): void { $this->expectException(SchemaDefinitionNotUniqueException::class); $this->expectExceptionMessageMatches( - '/Entry definitions must be unique.*\. Please consider using join prefix option$/', + '/Column definitions must be unique.*\. Please consider using join prefix option$/', ); (new JoinSchema())->of(Join::left, schema(int_schema('id'), str_schema('name')), schema(str_schema('name'))); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Join/RowsJoinTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Join/RowsJoinTest.php index 973d1fa315..5a08b7a97c 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Join/RowsJoinTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Join/RowsJoinTest.php @@ -115,7 +115,7 @@ public function test_cross_join_left_with_name_conflict(): void { $this->expectException(SchemaDefinitionNotUniqueException::class); $this->expectExceptionMessage( - 'Entry definitions must be unique, duplicated entries: [active], all: [id, country, active, active]', + 'Column definitions must be unique, duplicated columns: [active], all: [id, country, active, active]', ); $left = array_to_rows( @@ -264,7 +264,7 @@ public function test_inner_join_with_duplicated_entries(): void { $this->expectException(SchemaDefinitionNotUniqueException::class); $this->expectExceptionMessage( - 'Entry definitions must be unique, duplicated entries: [id], all: [id, country, id, code, name]', + 'Column definitions must be unique, duplicated columns: [id], all: [id, country, id, code, name]', ); $left = array_to_rows( @@ -499,7 +499,7 @@ public function test_left_join_with_the_duplicated_columns(): void { $this->expectException(SchemaDefinitionNotUniqueException::class); $this->expectExceptionMessage( - 'Entry definitions must be unique, duplicated entries: [id], all: [id, country, id, code, name]', + 'Column definitions must be unique, duplicated columns: [id], all: [id, country, id, code, name]', ); $left = array_to_rows( @@ -646,7 +646,7 @@ public function test_right_join_with_duplicated_entry_names(): void { $this->expectException(SchemaDefinitionNotUniqueException::class); $this->expectExceptionMessage( - 'Entry definitions must be unique, duplicated entries: [id], all: [id, country, id, code, name]', + 'Column definitions must be unique, duplicated columns: [id], all: [id, country, id, code, name]', ); $left = array_to_rows( diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Optimizer/FilterWalkTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Optimizer/FilterWalkTest.php index 1846332960..3eac899387 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Optimizer/FilterWalkTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Optimizer/FilterWalkTest.php @@ -18,12 +18,12 @@ use Flow\ETL\Tests\Double\RedefiningNode; use Flow\ETL\Tests\FlowTestCase; use Flow\ETL\Tests\Mother\NodeMother; -use Flow\ETL\WithEntry; use function Flow\ETL\DSL\int_schema; use function Flow\ETL\DSL\lit; use function Flow\ETL\DSL\ref; use function Flow\ETL\DSL\rename_replace; +use function Flow\ETL\DSL\with_column; final class FilterWalkTest extends FlowTestCase { @@ -229,7 +229,7 @@ public function test_a_duplicate_row_defining_a_referenced_name_blocks(): void static::assertNull((new FilterWalk())->predicateAtLeaf(new Filter(new DuplicateRow( $read, lit(true), - [new WithEntry('year', lit(2023))], + [with_column('year', lit(2023))], ), lit(true)), $read, ref('year')->isNotNull())); } @@ -240,7 +240,7 @@ public function test_a_duplicate_row_defining_another_name_does_not_block(): voi static::assertNotNull((new FilterWalk())->predicateAtLeaf(new Filter(new DuplicateRow( $read, lit(true), - [new WithEntry('copy', lit(1))], + [with_column('copy', lit(1))], ), lit(true)), $read, ref('year')->isNotNull())); } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Optimizer/Rule/CountFromStatisticsTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Optimizer/Rule/CountFromStatisticsTest.php index 9e4cafef44..b92b1d1826 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Optimizer/Rule/CountFromStatisticsTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Optimizer/Rule/CountFromStatisticsTest.php @@ -202,7 +202,7 @@ public static function frames_counted_by_running(): Generator ->dropDuplicates('id')]; yield 'a transform that keeps the rows' => [df() ->read(from_array([['id' => 1]])) - ->withEntry('copy', ref('id'))]; + ->withColumn('copy', ref('id'))]; yield 'a sink' => [df()->read(from_array([['id' => 1]]))->write(to_memory(new ArrayMemory()))]; } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Optimizer/Rule/PushFilterIntoSourceTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Optimizer/Rule/PushFilterIntoSourceTest.php index 792499ae7e..e1f6c9d17c 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Optimizer/Rule/PushFilterIntoSourceTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Optimizer/Rule/PushFilterIntoSourceTest.php @@ -21,7 +21,7 @@ use Flow\ETL\Tests\FlowTestCase; use Flow\ETL\Tests\Mother\NodeMother; use Flow\ETL\Tests\Mother\PartitionedSourceMother; -use Flow\ETL\WithEntry; +use Flow\ETL\WithColumn; use Flow\Filesystem\Path\Filter\Filters; use Flow\Filesystem\Path\Filter\OnlyFiles; use PHPUnit\Framework\Attributes\DataProvider; @@ -251,13 +251,13 @@ public function test_a_limit_below_the_filter_blocks_the_push(): void static::assertEquals(new OnlyFiles(), $extractor->scans[0]->pathFilter); } - public function test_a_with_entry_redefining_the_partition_column_blocks_the_push(): void + public function test_a_with_column_redefining_the_partition_column_blocks_the_push(): void { $extractor = PartitionedSourceMother::yearMonth(); df() ->read($extractor) - ->withEntry('year', lit(2023)) + ->withColumn('year', lit(2023)) ->filter(ref('year')->equals(lit(2023))) ->fetch(); @@ -270,7 +270,7 @@ public function test_a_duplicate_row_defining_the_partition_column_blocks_the_pu $rows = df() ->read($extractor) - ->duplicateRow(lit(true), new WithEntry('year', lit(2023))) + ->duplicateRow(lit(true), new WithColumn('year', lit(2023))) ->filter(ref('year')->equals(lit(2023))) ->fetch(); @@ -285,7 +285,7 @@ public function test_a_duplicate_row_defining_another_column_does_not_block_the_ df() ->read($extractor) - ->duplicateRow(lit(true), new WithEntry('copy', lit(1))) + ->duplicateRow(lit(true), new WithColumn('copy', lit(1))) ->filter(ref('year')->equals(lit(2023))) ->fetch(); @@ -464,7 +464,7 @@ public function test_a_filter_on_an_alias_of_a_partition_column_is_pushed_as_the $rows = df() ->read($extractor) - ->withEntry('y', ref('year')) + ->withColumn('y', ref('year')) ->filter(ref('y')->equals(lit(2023))) ->fetch(); @@ -481,7 +481,7 @@ public function test_a_filter_on_an_alias_of_a_body_column_is_pushed_as_the_orig df() ->read($extractor) - ->withEntry('v', ref('value')) + ->withColumn('v', ref('value')) ->filter(ref('v')->equals($literal = lit('a'))) ->fetch(); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Plan/LogicalPlanTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Plan/LogicalPlanTest.php index 5c2f3c4cd7..103d4e2a20 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Plan/LogicalPlanTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Plan/LogicalPlanTest.php @@ -131,7 +131,7 @@ public function test_transform_up_rewrites_a_node_shared_by_the_spine_and_a_sink $spineSelect = $rewritten->root->children()[0]->children()[0]->children()[0]; static::assertInstanceOf(Node\Select::class, $spineSelect); - static::assertSame(['name'], $spineSelect->entries); + static::assertSame(['name'], $spineSelect->columns); static::assertSame($spineSelect, $rewritten->sinks()->all()[0]->children()[0]); } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Plan/Node/DistinctTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Plan/Node/DistinctTest.php index 5a85651366..23f396681d 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Plan/Node/DistinctTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Plan/Node/DistinctTest.php @@ -34,7 +34,7 @@ public function test_with_children_returns_a_new_instance_when_a_child_changes() static::assertNotSame($node, $rebuilt); static::assertInstanceOf(Distinct::class, $rebuilt); static::assertSame([$other], $rebuilt->children()); - static::assertSame(['id'], $rebuilt->entries); + static::assertSame(['id'], $rebuilt->columns); } public function test_declarations(): void @@ -51,7 +51,7 @@ public function test_declarations(): void public function test_no_entries_is_refused(): void { $this->expectException(InvalidArgumentException::class); - $this->expectExceptionMessage('DropDuplicatesTransformer requires at least one entry'); + $this->expectExceptionMessage('DropDuplicatesTransformer requires at least one column'); new Distinct(NodeMother::read(), []); } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Plan/Node/DropTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Plan/Node/DropTest.php index df0a4cb119..e98809d20e 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Plan/Node/DropTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Plan/Node/DropTest.php @@ -33,7 +33,7 @@ public function test_with_children_returns_a_new_instance_when_a_child_changes() static::assertNotSame($node, $rebuilt); static::assertInstanceOf(Drop::class, $rebuilt); static::assertSame([$other], $rebuilt->children()); - static::assertSame(['id'], $rebuilt->entries); + static::assertSame(['id'], $rebuilt->columns); } public function test_declarations(): void diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Plan/Node/DuplicateRowTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Plan/Node/DuplicateRowTest.php index 49d79f91b8..d8b21a8091 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Plan/Node/DuplicateRowTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Plan/Node/DuplicateRowTest.php @@ -11,7 +11,7 @@ use Flow\ETL\Plan\Transparency; use Flow\ETL\Tests\FlowTestCase; use Flow\ETL\Tests\Mother\NodeMother; -use Flow\ETL\WithEntry; +use Flow\ETL\WithColumn; use function Flow\ETL\DSL\lit; @@ -20,7 +20,7 @@ final class DuplicateRowTest extends FlowTestCase public function test_with_children_returns_the_same_instance_when_children_are_identical(): void { $input = NodeMother::read(); - $node = new DuplicateRow($input, lit(true), [new WithEntry('copy', lit(1))]); + $node = new DuplicateRow($input, lit(true), [new WithColumn('copy', lit(1))]); static::assertSame($node, $node->withChildren([$input])); } @@ -30,8 +30,8 @@ public function test_with_children_returns_a_new_instance_when_a_child_changes() $input = NodeMother::read(); $other = NodeMother::read(); $condition = lit(true); - $entries = [new WithEntry('copy', lit(1))]; - $node = new DuplicateRow($input, $condition, $entries); + $columns = [new WithColumn('copy', lit(1))]; + $node = new DuplicateRow($input, $condition, $columns); $rebuilt = $node->withChildren([$other]); @@ -39,13 +39,13 @@ public function test_with_children_returns_a_new_instance_when_a_child_changes() static::assertInstanceOf(DuplicateRow::class, $rebuilt); static::assertSame([$other], $rebuilt->children()); static::assertSame($condition, $rebuilt->condition); - static::assertSame($entries, $rebuilt->entries); + static::assertSame($columns, $rebuilt->columns); } public function test_declarations(): void { $input = NodeMother::read(); - $node = new DuplicateRow($input, lit(true), [new WithEntry('copy', lit(1))]); + $node = new DuplicateRow($input, lit(true), [new WithColumn('copy', lit(1))]); static::assertSame(RowCount::expanding, $node->rowCount()); static::assertSame(Transparency::transparent, $node->transparency()); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Plan/Node/ExpandColumnTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Plan/Node/ExpandColumnTest.php index 68f6d2e10c..80e72e856e 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Plan/Node/ExpandColumnTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Plan/Node/ExpandColumnTest.php @@ -55,7 +55,7 @@ public function test_with_children_keeps_entry_function_and_carries(): void ))->withChildren([$other]); static::assertSame([$other], $rebuilt->children()); - static::assertSame('item', $rebuilt->entry); + static::assertSame('item', $rebuilt->column); static::assertSame($function, $rebuilt->function); static::assertEquals(RequiredColumns::only('item'), $rebuilt->carries); } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Plan/Node/RenameEachTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Plan/Node/RenameEachTest.php index 22acfa22d2..b6e5feb2b9 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Plan/Node/RenameEachTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Plan/Node/RenameEachTest.php @@ -12,14 +12,14 @@ use Flow\ETL\Plan\Transparency; use Flow\ETL\Tests\FlowTestCase; use Flow\ETL\Tests\Mother\NodeMother; -use Flow\ETL\Transformer\Rename\RenameMapEntryStrategy; +use Flow\ETL\Transformer\Rename\RenameMapColumnStrategy; final class RenameEachTest extends FlowTestCase { public function test_with_children_returns_the_same_instance_when_children_are_identical(): void { $input = NodeMother::read(); - $node = new RenameEach($input, [new RenameMapEntryStrategy(['id' => 'user_id'])]); + $node = new RenameEach($input, [new RenameMapColumnStrategy(['id' => 'user_id'])]); static::assertSame($node, $node->withChildren([$input])); } @@ -28,7 +28,7 @@ public function test_with_children_returns_a_new_instance_when_a_child_changes() { $input = NodeMother::read(); $other = NodeMother::read(); - $strategies = [new RenameMapEntryStrategy(['id' => 'user_id'])]; + $strategies = [new RenameMapColumnStrategy(['id' => 'user_id'])]; $node = new RenameEach($input, $strategies); $rebuilt = $node->withChildren([$other]); @@ -42,7 +42,7 @@ public function test_with_children_returns_a_new_instance_when_a_child_changes() public function test_declarations(): void { $input = NodeMother::read(); - $node = new RenameEach($input, [new RenameMapEntryStrategy(['id' => 'user_id'])]); + $node = new RenameEach($input, [new RenameMapColumnStrategy(['id' => 'user_id'])]); static::assertSame(RowCount::preserving, $node->rowCount()); static::assertSame(Transparency::transparent, $node->transparency()); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Plan/Node/SelectTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Plan/Node/SelectTest.php index 845480c535..01a63b7d2f 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Plan/Node/SelectTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Plan/Node/SelectTest.php @@ -33,7 +33,7 @@ public function test_with_children_returns_a_new_instance_when_a_child_changes() static::assertNotSame($node, $rebuilt); static::assertInstanceOf(Select::class, $rebuilt); static::assertSame([$other], $rebuilt->children()); - static::assertSame(['id'], $rebuilt->entries); + static::assertSame(['id'], $rebuilt->columns); } public function test_declarations(): void diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Plan/Node/TransformTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Plan/Node/TransformTest.php index 640c9982e1..55609153cd 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Plan/Node/TransformTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Plan/Node/TransformTest.php @@ -11,14 +11,14 @@ use Flow\ETL\Plan\Transparency; use Flow\ETL\Tests\FlowTestCase; use Flow\ETL\Tests\Mother\NodeMother; -use Flow\ETL\Transformer\SelectEntriesTransformer; +use Flow\ETL\Transformer\SelectColumnsTransformer; final class TransformTest extends FlowTestCase { public function test_with_children_returns_the_same_instance_when_children_are_identical(): void { $input = NodeMother::read(); - $node = new Transform($input, new SelectEntriesTransformer('id')); + $node = new Transform($input, new SelectColumnsTransformer('id')); static::assertSame($node, $node->withChildren([$input])); } @@ -27,7 +27,7 @@ public function test_with_children_returns_a_new_instance_when_a_child_changes() { $input = NodeMother::read(); $other = NodeMother::read(); - $transformer = new SelectEntriesTransformer('id'); + $transformer = new SelectColumnsTransformer('id'); $node = new Transform($input, $transformer); $rebuilt = $node->withChildren([$other]); @@ -41,7 +41,7 @@ public function test_with_children_returns_a_new_instance_when_a_child_changes() public function test_declarations(): void { $input = NodeMother::read(); - $node = new Transform($input, new SelectEntriesTransformer('id')); + $node = new Transform($input, new SelectColumnsTransformer('id')); static::assertSame(RowCount::unknown, $node->rowCount()); static::assertSame(Transparency::opaque, $node->transparency()); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Plan/Node/WindowColumnTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Plan/Node/WindowColumnTest.php index 3034d4c1f1..8868ba5273 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Plan/Node/WindowColumnTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Plan/Node/WindowColumnTest.php @@ -38,7 +38,7 @@ public function test_with_children_returns_a_new_instance_when_a_child_changes() static::assertNotSame($node, $rebuilt); static::assertInstanceOf(WindowColumn::class, $rebuilt); static::assertSame([$other], $rebuilt->children()); - static::assertSame('rank', $rebuilt->entry); + static::assertSame('rank', $rebuilt->column); static::assertSame($function, $rebuilt->function); } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Plan/Node/WithColumnTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Plan/Node/WithColumnTest.php index e24ba6fa43..eb7f4a2cfb 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Plan/Node/WithColumnTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Plan/Node/WithColumnTest.php @@ -43,7 +43,7 @@ public function test_with_children_returns_a_new_instance_when_a_child_changes() static::assertNotSame($node, $rebuilt); static::assertSame([$other], $rebuilt->children()); - static::assertSame('doubled', $rebuilt->entry); + static::assertSame('doubled', $rebuilt->column); static::assertSame($function, $rebuilt->function); } @@ -52,7 +52,7 @@ public function test_entry_and_function_are_the_values_it_was_built_with(): void $function = ref('id')->multiply(lit(2)); $node = new WithColumn(NodeMother::read(), 'doubled', $function); - static::assertSame('doubled', $node->entry); + static::assertSame('doubled', $node->column); static::assertSame($function, $node->function); } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Plan/TransformUpTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Plan/TransformUpTest.php index c74e53d68f..6fbf556fe8 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Plan/TransformUpTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Plan/TransformUpTest.php @@ -79,7 +79,7 @@ public function test_a_parent_sees_its_rewritten_child(): void static::assertInstanceOf(Limit::class, $rewritten); $select = $rewritten->children()[0]; static::assertInstanceOf(Select::class, $select); - static::assertSame(['name'], $select->entries); + static::assertSame(['name'], $select->columns); } /** @@ -104,7 +104,7 @@ public function test_a_joins_right_side_is_handed_back_untouched_even_when_it_sh static::assertInstanceOf(JoinsFrame::class, $rewritten); $left = $rewritten->children()[0]; static::assertInstanceOf(Select::class, $left); - static::assertSame(['name'], $left->entries); + static::assertSame(['name'], $left->columns); static::assertSame($join->right(), $rewritten->right()); } } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Planner/NodeTranslatorTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Planner/NodeTranslatorTest.php index 66dee3ccee..ba783be5dd 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Planner/NodeTranslatorTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Planner/NodeTranslatorTest.php @@ -69,20 +69,19 @@ use Flow\ETL\Transformer\AddRowIndexTransformer; use Flow\ETL\Transformer\CollectReferencesTransformer; use Flow\ETL\Transformer\CrossJoinRowsTransformer; +use Flow\ETL\Transformer\DropColumnsTransformer; use Flow\ETL\Transformer\DropDuplicatesTransformer; -use Flow\ETL\Transformer\DropEntriesTransformer; use Flow\ETL\Transformer\DuplicateRowTransformer; use Flow\ETL\Transformer\JoinEachRowsTransformer; use Flow\ETL\Transformer\LimitTransformer; -use Flow\ETL\Transformer\PruneEntriesTransformer; -use Flow\ETL\Transformer\Rename\RenameMapEntryStrategy; -use Flow\ETL\Transformer\RenameEachEntryTransformer; -use Flow\ETL\Transformer\RenameEntryTransformer; +use Flow\ETL\Transformer\PruneColumnsTransformer; +use Flow\ETL\Transformer\Rename\RenameMapColumnStrategy; +use Flow\ETL\Transformer\RenameColumnTransformer; +use Flow\ETL\Transformer\RenameEachColumnTransformer; use Flow\ETL\Transformer\ScalarFunctionFilterTransformer; use Flow\ETL\Transformer\ScalarFunctionTransformer; -use Flow\ETL\Transformer\SelectEntriesTransformer; +use Flow\ETL\Transformer\SelectColumnsTransformer; use Flow\ETL\Transformer\UntilTransformer; -use Flow\ETL\WithEntry; use PHPUnit\Framework\Attributes\TestWith; use function array_map; @@ -102,13 +101,14 @@ use function Flow\ETL\DSL\schema; use function Flow\ETL\DSL\to_memory; use function Flow\ETL\DSL\window; +use function Flow\ETL\DSL\with_column; final class NodeTranslatorTest extends FlowTestCase { public function test_aggregate_steps_are_the_exact_list_in_order(): void { static::assertSame( - [PruneEntriesTransformer::class, GroupByAggregationProcessor::class], + [PruneColumnsTransformer::class, GroupByAggregationProcessor::class], array_map( static fn($step) => $step::class, NodeTranslator::toSteps( @@ -249,7 +249,7 @@ public function test_distinct_steps_are_the_exact_list_in_order(): void public function test_drop_steps_are_the_exact_list_in_order(): void { static::assertSame( - [DropEntriesTransformer::class], + [DropColumnsTransformer::class], array_map( static fn($step) => $step::class, NodeTranslator::toSteps(new Drop(NodeMother::read(), ['id']), NodeMother::context(), []), @@ -263,7 +263,7 @@ public function test_duplicate_row_steps_are_the_exact_list_in_order(): void [DuplicateRowTransformer::class], array_map( static fn($step) => $step::class, - NodeTranslator::toSteps(new DuplicateRow(NodeMother::read(), lit(true), [new WithEntry( + NodeTranslator::toSteps(new DuplicateRow(NodeMother::read(), lit(true), [with_column( 'copy', lit(1), )]), NodeMother::context(), []), @@ -350,11 +350,11 @@ public function test_read_steps_are_the_exact_list_in_order(): void public function test_rename_each_steps_are_the_exact_list_in_order(): void { static::assertSame( - [RenameEachEntryTransformer::class], + [RenameEachColumnTransformer::class], array_map( static fn($step) => $step::class, NodeTranslator::toSteps( - new RenameEach(NodeMother::read(), [new RenameMapEntryStrategy(['id' => 'user_id'])]), + new RenameEach(NodeMother::read(), [new RenameMapColumnStrategy(['id' => 'user_id'])]), NodeMother::context(), [], ), @@ -365,7 +365,7 @@ public function test_rename_each_steps_are_the_exact_list_in_order(): void public function test_rename_steps_are_the_exact_list_in_order(): void { static::assertSame( - [RenameEntryTransformer::class], + [RenameColumnTransformer::class], array_map( static fn($step) => $step::class, NodeTranslator::toSteps(new Rename(NodeMother::read(), 'id', 'user_id'), NodeMother::context(), []), @@ -387,7 +387,7 @@ public function test_repartition_steps_are_the_exact_list_in_order(): void public function test_select_steps_are_the_exact_list_in_order(): void { static::assertSame( - [SelectEntriesTransformer::class], + [SelectColumnsTransformer::class], array_map( static fn($step) => $step::class, NodeTranslator::toSteps(new Select(NodeMother::read(), ['id']), NodeMother::context(), []), @@ -427,7 +427,7 @@ public function test_transaction_a_transaction_owns_no_step(): void public function test_transform_the_instance_the_node_holds_is_the_step(): void { - $transformer = new SelectEntriesTransformer('id'); + $transformer = new SelectColumnsTransformer('id'); static::assertSame( [$transformer], diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Planner/PipelineSplitTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Planner/PipelineSplitTest.php index 62a19a2452..f77b906fbe 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Planner/PipelineSplitTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Planner/PipelineSplitTest.php @@ -40,7 +40,7 @@ use Flow\ETL\Transformer\CrossJoinRowsTransformer; use Flow\ETL\Transformer\JoinEachRowsTransformer; use Flow\ETL\Transformer\LimitTransformer; -use Flow\ETL\Transformer\SelectEntriesTransformer; +use Flow\ETL\Transformer\SelectColumnsTransformer; use function array_map; use function Flow\ETL\DSL\df; @@ -143,12 +143,12 @@ public function test_steps_go_in_through_segments_add_so_a_processor_opens_a_new static::assertCount(2, $segments); static::assertSame( - [SelectEntriesTransformer::class], + [SelectColumnsTransformer::class], array_map(static fn($step) => $step::class, $segments[0]->steps()), ); static::assertNotNull($segments[0]->processor()); static::assertSame( - [SelectEntriesTransformer::class, ArrayLoader::class], + [SelectColumnsTransformer::class, ArrayLoader::class], array_map(static fn($step) => $step::class, $segments[1]->steps()), ); } @@ -171,7 +171,7 @@ public function test_a_refused_plan_uses_raw_steps_for_every_node(): void static::assertInstanceOf(Raw::class, $plan); static::assertNull($plan->schema); static::assertSame( - [JoinEachRowsTransformer::class, SelectEntriesTransformer::class, CollectingProcessor::class], + [JoinEachRowsTransformer::class, SelectColumnsTransformer::class, CollectingProcessor::class], PipelineSteps::classes($plan->root()->segments()), ); static::assertSame($planned->of($root)->steps[0], PipelineSteps::of($plan->root()->segments())[2]); @@ -322,7 +322,7 @@ public function test_a_bare_sink_at_a_processor_heads_the_next_segment(): void static::assertCount(2, $segments); static::assertInstanceOf(BatchingProcessor::class, $segments[0]->processor()); static::assertSame( - [MemoryLoader::class, SelectEntriesTransformer::class], + [MemoryLoader::class, SelectColumnsTransformer::class], array_map(static fn($step) => $step::class, $segments[1]->steps()), ); } @@ -595,7 +595,7 @@ public function test_a_plan_with_an_undescribable_op_still_attaches_its_sinks(): static::assertSame( [ JoinEachRowsTransformer::class, - SelectEntriesTransformer::class, + SelectColumnsTransformer::class, MemoryLoader::class, TransactionalSinks::class, CollectingProcessor::class, diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/PlannerTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/PlannerTest.php index e5feb8008f..9bf153979e 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/PlannerTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/PlannerTest.php @@ -49,7 +49,7 @@ use Flow\ETL\Transformer\CrossJoinRowsTransformer; use Flow\ETL\Transformer\JoinEachRowsTransformer; use Flow\ETL\Transformer\LimitTransformer; -use Flow\ETL\Transformer\SelectEntriesTransformer; +use Flow\ETL\Transformer\SelectColumnsTransformer; use function array_map; use function Flow\ETL\Adapter\CSV\from_csv; @@ -92,7 +92,7 @@ public function test_the_default_rules_keep_every_sink_on_the_spine(): void $steps = PipelineSteps::of($plan->root()->segments()); static::assertSame(4, $plan->root()->scan()->limit); static::assertSame( - [SinkFeed::class, LimitTransformer::class, MemoryLoader::class, SelectEntriesTransformer::class], + [SinkFeed::class, LimitTransformer::class, MemoryLoader::class, SelectColumnsTransformer::class], array_map(static fn($step) => $step::class, $steps), ); static::assertSame($loader, $steps[2]); @@ -115,7 +115,7 @@ public function test_a_rule_that_rebuilds_the_plan_around_transform_up_keeps_its // both sinks are children of the one root, so a rule copying the root cannot lose them static::assertSame( - [SelectEntriesTransformer::class, MemoryLoader::class, SinkFeed::class], + [SelectColumnsTransformer::class, MemoryLoader::class, SinkFeed::class], PipelineSteps::classes($plan->root()->segments()), ); } @@ -133,7 +133,7 @@ public function test_a_linear_plan_is_one_pipeline_with_the_limit_pushed(): void static::assertSame(0, $plan->root()->id); static::assertSame( - [SelectEntriesTransformer::class, LimitTransformer::class, CSVLoader::class], + [SelectColumnsTransformer::class, LimitTransformer::class, CSVLoader::class], PipelineSteps::classes($plan->root()->segments()), ); static::assertNull($plan->root()->input()); @@ -567,7 +567,7 @@ public function test_a_planning_failure_reports_a_started_and_a_failed_span_and_ static::fail('Expected the bind failure to be rethrown.'); } catch (SchemaDefinitionNotFoundException $e) { - static::assertSame('Schema definition for entry "nope" not found.', $e->getMessage()); + static::assertSame('Schema definition for column "nope" not found.', $e->getMessage()); } static::assertCount(1, $telemetry->spans->startedSpans()); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Processor/ExpandingProcessorTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Processor/ExpandingProcessorTest.php index b0e4e87ee6..0c4303fb70 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Processor/ExpandingProcessorTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Processor/ExpandingProcessorTest.php @@ -495,7 +495,7 @@ public function test_bind_refuses_an_expand_inside_an_expand(ScalarFunction $fun { $this->expectException(InvalidArgumentException::class); $this->expectExceptionMessage( - 'array_expand() cannot contain another array_expand(). Expand one level per withEntry().', + 'array_expand() cannot contain another array_expand(). Expand one level per withColumn().', ); (new ExpandingProcessor('v', $function, RequiredColumns::all()))->bind(ListColumnsMother::schema()); @@ -514,7 +514,7 @@ public function test_an_unbound_expand_inside_an_expand_is_refused(): void { $this->expectException(InvalidArgumentException::class); $this->expectExceptionMessage( - 'array_expand() cannot contain another array_expand(). Expand one level per withEntry().', + 'array_expand() cannot contain another array_expand(). Expand one level per withColumn().', ); ExpandingProcessorContext::rows( diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Processor/HashJoinProcessorTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Processor/HashJoinProcessorTest.php index 2e5f1d900a..aa869c64aa 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Processor/HashJoinProcessorTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Processor/HashJoinProcessorTest.php @@ -702,7 +702,7 @@ public function test_duplicated_entries_outside_join_columns_throw_join_exceptio $this->expectException(JoinException::class); $this->expectExceptionMessage( - 'Entry definitions must be unique, duplicated entries: [name], all: [id, name, user_id, name]', + 'Column definitions must be unique, duplicated columns: [name], all: [id, name, user_id, name]', ); iterator_to_array($processor->process($generator, flow_context()), false); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Processor/WindowProcessorTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Processor/WindowProcessorTest.php index cf0f85cd0e..4c819398a3 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Processor/WindowProcessorTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Processor/WindowProcessorTest.php @@ -195,7 +195,7 @@ public function test_definition_entry_keeps_its_type_and_metadata(): void public function test_an_unknown_partition_reference_is_refused_at_bind(): void { $this->expectException(SchemaDefinitionNotFoundException::class); - $this->expectExceptionMessage('Schema definition for entry "missing" not found.'); + $this->expectExceptionMessage('Schema definition for column "missing" not found.'); WindowProcessorContext::values( 'row_number', @@ -207,7 +207,7 @@ public function test_an_unknown_partition_reference_is_refused_at_bind(): void public function test_an_unknown_order_reference_is_refused_at_bind(): void { $this->expectException(SchemaDefinitionNotFoundException::class); - $this->expectExceptionMessage('Schema definition for entry "missing" not found.'); + $this->expectExceptionMessage('Schema definition for column "missing" not found.'); WindowProcessorContext::values( 'row_number', @@ -476,7 +476,7 @@ public function test_bind_refuses_an_expand_in_the_window_function(): void { $this->expectException(InvalidArgumentException::class); $this->expectExceptionMessage( - 'over() cannot contain array_expand(), it turns one row into many rows. Expand with withEntry() first, then use the new column.', + 'over() cannot contain array_expand(), it turns one row into many rows. Expand with withColumn() first, then use the new column.', ); (new WindowProcessor( diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Rows/ArrayToRowsTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Rows/ArrayToRowsTest.php index 4a493bd823..34f5a25fc3 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Rows/ArrayToRowsTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Rows/ArrayToRowsTest.php @@ -20,7 +20,7 @@ final class ArrayToRowsTest extends FlowTestCase { - public function test_building_array_to_rows_with_entry_that_is_list_of_strings(): void + public function test_building_array_to_rows_with_column_that_is_list_of_strings(): void { $rows = array_to_rows( [ @@ -40,7 +40,7 @@ public function test_building_array_to_rows_with_entry_that_is_list_of_strings() ); } - public function test_building_array_to_rows_with_entry_that_is_list_of_strings_with_one_row(): void + public function test_building_array_to_rows_with_column_that_is_list_of_strings_with_one_row(): void { $rows = array_to_rows( [ diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/Definition/BooleanDefinitionTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/Definition/BooleanDefinitionTest.php index faadd4428f..7921ed514f 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/Definition/BooleanDefinitionTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/Definition/BooleanDefinitionTest.php @@ -235,8 +235,8 @@ public function test_rename(): void $renamed = $def->rename('new_name'); - static::assertSame('new_name', $renamed->entry()->name()); - static::assertSame('flag', $def->entry()->name()); + static::assertSame('new_name', $renamed->reference()->name()); + static::assertSame('flag', $def->reference()->name()); } public function test_set_metadata(): void diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/Definition/CommonTypeTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/Definition/CommonTypeTest.php index 4e32f48710..cf3b729397 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/Definition/CommonTypeTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/Definition/CommonTypeTest.php @@ -124,7 +124,7 @@ public function test_the_result_keeps_the_left_column_name(): void 'c', (new CommonType()) ->merge(str_schema('c'), int_schema('c')) - ->entry() + ->reference() ->name(), ); } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/Definition/DateDefinitionTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/Definition/DateDefinitionTest.php index 5e1904e781..d36578c672 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/Definition/DateDefinitionTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/Definition/DateDefinitionTest.php @@ -274,8 +274,8 @@ public function test_rename(): void $renamed = $def->rename('updated_at'); - static::assertSame('updated_at', $renamed->entry()->name()); - static::assertSame('created_at', $def->entry()->name()); + static::assertSame('updated_at', $renamed->reference()->name()); + static::assertSame('created_at', $def->reference()->name()); } public function test_set_metadata(): void diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/Definition/DateTimeDefinitionTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/Definition/DateTimeDefinitionTest.php index 6572c899cc..9fd9f25937 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/Definition/DateTimeDefinitionTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/Definition/DateTimeDefinitionTest.php @@ -291,8 +291,8 @@ public function test_rename(): void $renamed = $def->rename('updated_at'); - static::assertSame('updated_at', $renamed->entry()->name()); - static::assertSame('created_at', $def->entry()->name()); + static::assertSame('updated_at', $renamed->reference()->name()); + static::assertSame('created_at', $def->reference()->name()); } public function test_set_metadata(): void diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/Definition/EnumDefinitionTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/Definition/EnumDefinitionTest.php index 8e5755531a..afafe1d0d7 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/Definition/EnumDefinitionTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/Definition/EnumDefinitionTest.php @@ -309,8 +309,8 @@ public function test_rename(): void $renamed = $def->rename('new_status'); - static::assertSame('new_status', $renamed->entry()->name()); - static::assertSame('status', $def->entry()->name()); + static::assertSame('new_status', $renamed->reference()->name()); + static::assertSame('status', $def->reference()->name()); } public function test_set_metadata(): void diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/Definition/FloatDefinitionTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/Definition/FloatDefinitionTest.php index 443551bad3..971f4dab70 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/Definition/FloatDefinitionTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/Definition/FloatDefinitionTest.php @@ -259,8 +259,8 @@ public function test_rename(): void $renamed = $def->rename('new_amount'); - static::assertSame('new_amount', $renamed->entry()->name()); - static::assertSame('amount', $def->entry()->name()); + static::assertSame('new_amount', $renamed->reference()->name()); + static::assertSame('amount', $def->reference()->name()); } public function test_set_metadata(): void diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/Definition/HTMLDefinitionTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/Definition/HTMLDefinitionTest.php index 16b33d9573..935c937619 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/Definition/HTMLDefinitionTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/Definition/HTMLDefinitionTest.php @@ -240,8 +240,8 @@ public function test_rename(): void $renamed = $def->rename('new_content'); - static::assertSame('new_content', $renamed->entry()->name()); - static::assertSame('content', $def->entry()->name()); + static::assertSame('new_content', $renamed->reference()->name()); + static::assertSame('content', $def->reference()->name()); } public function test_set_metadata(): void diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/Definition/HTMLElementDefinitionTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/Definition/HTMLElementDefinitionTest.php index 13dd28c750..6a70a40468 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/Definition/HTMLElementDefinitionTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/Definition/HTMLElementDefinitionTest.php @@ -240,8 +240,8 @@ public function test_rename(): void $renamed = $def->rename('new_element'); - static::assertSame('new_element', $renamed->entry()->name()); - static::assertSame('element', $def->entry()->name()); + static::assertSame('new_element', $renamed->reference()->name()); + static::assertSame('element', $def->reference()->name()); } public function test_set_metadata(): void diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/Definition/IntegerDefinitionTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/Definition/IntegerDefinitionTest.php index fe21fd34e7..a6096c02ff 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/Definition/IntegerDefinitionTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/Definition/IntegerDefinitionTest.php @@ -260,8 +260,8 @@ public function test_rename(): void $renamed = $def->rename('new_id'); - static::assertSame('new_id', $renamed->entry()->name()); - static::assertSame('id', $def->entry()->name()); + static::assertSame('new_id', $renamed->reference()->name()); + static::assertSame('id', $def->reference()->name()); } public function test_set_metadata(): void diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/Definition/JsonDefinitionTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/Definition/JsonDefinitionTest.php index 0a17d70665..3658d04e80 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/Definition/JsonDefinitionTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/Definition/JsonDefinitionTest.php @@ -246,8 +246,8 @@ public function test_rename(): void $renamed = $def->rename('new_data'); - static::assertSame('new_data', $renamed->entry()->name()); - static::assertSame('data', $def->entry()->name()); + static::assertSame('new_data', $renamed->reference()->name()); + static::assertSame('data', $def->reference()->name()); } public function test_set_metadata(): void diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/Definition/ListDefinitionTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/Definition/ListDefinitionTest.php index 5178c037cd..40cf4d9980 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/Definition/ListDefinitionTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/Definition/ListDefinitionTest.php @@ -311,8 +311,8 @@ public function test_rename(): void $renamed = $def->rename('new_items'); - static::assertSame('new_items', $renamed->entry()->name()); - static::assertSame('items', $def->entry()->name()); + static::assertSame('new_items', $renamed->reference()->name()); + static::assertSame('items', $def->reference()->name()); } public function test_set_metadata(): void diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/Definition/MapDefinitionTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/Definition/MapDefinitionTest.php index ae3d6768a8..2484acde8a 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/Definition/MapDefinitionTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/Definition/MapDefinitionTest.php @@ -326,8 +326,8 @@ public function test_rename(): void $renamed = $def->rename('new_data'); - static::assertSame('new_data', $renamed->entry()->name()); - static::assertSame('data', $def->entry()->name()); + static::assertSame('new_data', $renamed->reference()->name()); + static::assertSame('data', $def->reference()->name()); } public function test_set_metadata(): void diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/Definition/NullDefinitionTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/Definition/NullDefinitionTest.php index bf822e3f56..5ecad7dd64 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/Definition/NullDefinitionTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/Definition/NullDefinitionTest.php @@ -45,7 +45,7 @@ public function test_add_metadata(): void public function test_entry(): void { - static::assertSame('id', null_schema('id')->entry()->name()); + static::assertSame('id', null_schema('id')->reference()->name()); } public function test_is_always_nullable(): void @@ -197,7 +197,7 @@ public function test_rename(): void { $renamed = null_schema('id')->rename('new_id'); - static::assertSame('new_id', $renamed->entry()->name()); + static::assertSame('new_id', $renamed->reference()->name()); static::assertInstanceOf(NullDefinition::class, $renamed); } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/Definition/StringDefinitionTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/Definition/StringDefinitionTest.php index 3f66734e82..b02721f6c1 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/Definition/StringDefinitionTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/Definition/StringDefinitionTest.php @@ -251,8 +251,8 @@ public function test_rename(): void $renamed = $def->rename('new_name'); - static::assertSame('new_name', $renamed->entry()->name()); - static::assertSame('name', $def->entry()->name()); + static::assertSame('new_name', $renamed->reference()->name()); + static::assertSame('name', $def->reference()->name()); } public function test_set_metadata(): void diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/Definition/StructureDefinitionTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/Definition/StructureDefinitionTest.php index 4dcf4da671..bb4a27edcd 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/Definition/StructureDefinitionTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/Definition/StructureDefinitionTest.php @@ -524,8 +524,8 @@ public function test_rename(): void $renamed = $def->rename('new_data'); - static::assertSame('new_data', $renamed->entry()->name()); - static::assertSame('data', $def->entry()->name()); + static::assertSame('new_data', $renamed->reference()->name()); + static::assertSame('data', $def->reference()->name()); } public function test_set_metadata(): void diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/Definition/TimeDefinitionTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/Definition/TimeDefinitionTest.php index 57b4f369a3..3de1ab76d5 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/Definition/TimeDefinitionTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/Definition/TimeDefinitionTest.php @@ -268,8 +268,8 @@ public function test_rename(): void $renamed = $def->rename('new_duration'); - static::assertSame('new_duration', $renamed->entry()->name()); - static::assertSame('duration', $def->entry()->name()); + static::assertSame('new_duration', $renamed->reference()->name()); + static::assertSame('duration', $def->reference()->name()); } public function test_set_metadata(): void diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/Definition/TimeZoneDefinitionTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/Definition/TimeZoneDefinitionTest.php index c6b216f937..5a7143e020 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/Definition/TimeZoneDefinitionTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/Definition/TimeZoneDefinitionTest.php @@ -41,7 +41,7 @@ public function test_add_metadata(): void public function test_entry(): void { - static::assertSame('tz', time_zone_schema('tz')->entry()->name()); + static::assertSame('tz', time_zone_schema('tz')->reference()->name()); } /** @@ -145,7 +145,7 @@ public function test_normalize(): void public function test_rename(): void { - static::assertSame('other', time_zone_schema('tz')->rename('other')->entry()->name()); + static::assertSame('other', time_zone_schema('tz')->rename('other')->reference()->name()); } public function test_set_metadata(): void diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/Definition/UuidDefinitionTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/Definition/UuidDefinitionTest.php index 7fdd0fc179..392d97a2e6 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/Definition/UuidDefinitionTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/Definition/UuidDefinitionTest.php @@ -236,8 +236,8 @@ public function test_rename(): void $renamed = $def->rename('new_id'); - static::assertSame('new_id', $renamed->entry()->name()); - static::assertSame('id', $def->entry()->name()); + static::assertSame('new_id', $renamed->reference()->name()); + static::assertSame('id', $def->reference()->name()); } public function test_set_metadata(): void diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/Definition/XMLDefinitionTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/Definition/XMLDefinitionTest.php index 5af9ae5882..4fc3c1a0fd 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/Definition/XMLDefinitionTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/Definition/XMLDefinitionTest.php @@ -236,8 +236,8 @@ public function test_rename(): void $renamed = $def->rename('new_document'); - static::assertSame('new_document', $renamed->entry()->name()); - static::assertSame('document', $def->entry()->name()); + static::assertSame('new_document', $renamed->reference()->name()); + static::assertSame('document', $def->reference()->name()); } public function test_set_metadata(): void diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/Definition/XMLElementDefinitionTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/Definition/XMLElementDefinitionTest.php index be9859879d..f4b15a257b 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/Definition/XMLElementDefinitionTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/Definition/XMLElementDefinitionTest.php @@ -236,8 +236,8 @@ public function test_rename(): void $renamed = $def->rename('new_element'); - static::assertSame('new_element', $renamed->entry()->name()); - static::assertSame('element', $def->entry()->name()); + static::assertSame('new_element', $renamed->reference()->name()); + static::assertSame('element', $def->reference()->name()); } public function test_set_metadata(): void diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/Inference/ColumnTypesTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/Inference/ColumnTypesTest.php index 485816cffd..e521302e4c 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/Inference/ColumnTypesTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/Inference/ColumnTypesTest.php @@ -195,7 +195,7 @@ public function test_a_numeric_key_becomes_a_string_column_name(): void // PHP re-keys a numeric column name to int, so the fold has to survive an int key $columns->observe(['1' => 'x']); - static::assertSame('1', $columns->schema(ColumnTypesMother::floor())->get('1')->entry()->name()); + static::assertSame('1', $columns->schema(ColumnTypesMother::floor())->get('1')->reference()->name()); } public function test_a_saturated_string_column_widens_to_optional_string_on_a_later_null(): void diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/SchemaTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/SchemaTest.php index 8e57b92302..00cbca81d0 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/SchemaTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Schema/SchemaTest.php @@ -358,7 +358,7 @@ public function test_adding_duplicated_definitions(): void { $this->expectException(SchemaDefinitionNotUniqueException::class); $this->expectExceptionMessage( - 'Entry definitions must be unique, duplicated entries: [str], all: [id, str, str]', + 'Column definitions must be unique, duplicated columns: [str], all: [id, str, str]', ); schema(int_schema('id'), str_schema('str', true))->add(int_schema('str')); } @@ -586,7 +586,7 @@ public function test_move_preserves_definition_metadata(): void public function test_move_relative_to_itself(): void { $this->expectException(InvalidArgumentException::class); - $this->expectExceptionMessage('Cannot move entry "id" relative to itself'); + $this->expectExceptionMessage('Cannot move column "id" relative to itself'); schema(int_schema('id'), str_schema('name'))->moveBefore('id', 'id'); } @@ -616,7 +616,7 @@ public function test_move_to_non_existing(): void public function test_move_to_out_of_range(): void { $this->expectException(InvalidArgumentException::class); - $this->expectExceptionMessage('Cannot move entry "id" to index 2, schema has 2 definitions'); + $this->expectExceptionMessage('Cannot move column "id" to index 2, schema has 2 definitions'); schema(int_schema('id'), str_schema('name'))->moveTo('id', 2); } @@ -720,7 +720,7 @@ public function test_reorder(array $names): void public function test_reorder_duplicate_name(): void { $this->expectException(InvalidArgumentException::class); - $this->expectExceptionMessage('Cannot reorder entry "id" more than once'); + $this->expectExceptionMessage('Cannot reorder column "id" more than once'); schema(int_schema('id'), str_schema('name'))->reorder('id', 'id'); } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/AddRowIndexTransformerTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/AddRowIndexTransformerTest.php index 64925a9ba5..3b2c207593 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/AddRowIndexTransformerTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/AddRowIndexTransformerTest.php @@ -20,7 +20,7 @@ final class AddRowIndexTransformerTest extends FlowTestCase public function test_an_index_column_colliding_with_an_existing_column_is_rejected(): void { $this->expectException(SchemaDefinitionNotUniqueException::class); - $this->expectExceptionMessage('Entry definitions must be unique, duplicated entries: [id]'); + $this->expectExceptionMessage('Column definitions must be unique, duplicated columns: [id]'); (new AddRowIndexTransformer('id', StartFrom::ZERO))->transform(array_to_rows([[ 'id' => 1, diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/DropEntriesTransformerTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/DropColumnsTransformerTest.php similarity index 83% rename from src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/DropEntriesTransformerTest.php rename to src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/DropColumnsTransformerTest.php index b55dfc5fa3..68a233d2a8 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/DropEntriesTransformerTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/DropColumnsTransformerTest.php @@ -5,7 +5,7 @@ namespace Flow\ETL\Tests\Unit\Transformer; use Flow\ETL\Tests\FlowTestCase; -use Flow\ETL\Transformer\DropEntriesTransformer; +use Flow\ETL\Transformer\DropColumnsTransformer; use function Flow\ETL\DSL\array_to_rows; use function Flow\ETL\DSL\config; @@ -16,20 +16,20 @@ use function Flow\ETL\DSL\string_schema; use function Flow\Types\DSL\type_json; -final class DropEntriesTransformerTest extends FlowTestCase +final class DropColumnsTransformerTest extends FlowTestCase { public function test_bind_ignores_a_column_missing_from_the_input(): void { $input = schema(int_schema('id')); - static::assertEquals($input, (new DropEntriesTransformer('not_existing'))->bind($input)->output); + static::assertEquals($input, (new DropColumnsTransformer('not_existing'))->bind($input)->output); } public function test_bind_removes_the_dropped_columns(): void { static::assertEquals( schema(string_schema('name')), - (new DropEntriesTransformer('id', 'array'))->bind(schema( + (new DropColumnsTransformer('id', 'array'))->bind(schema( int_schema('id'), string_schema('name'), json_schema('array'), @@ -44,7 +44,7 @@ public function test_dropping_entries(): void schema(int_schema('id'), string_schema('name'), json_schema('array')), ); - $transformer = new DropEntriesTransformer('id', 'array'); + $transformer = new DropColumnsTransformer('id', 'array'); static::assertSame( [ ['name' => 'Row Name'], @@ -60,7 +60,7 @@ public function test_removing_not_existing_entries(): void schema(int_schema('id'), string_schema('name'), json_schema('array')), ); - $transformer = new DropEntriesTransformer('not_existing'); + $transformer = new DropColumnsTransformer('not_existing'); static::assertSame( [ ['id' => 1, 'name' => 'Row Name', 'array' => ['test']], diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/DropDuplicatesTransformerTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/DropDuplicatesTransformerTest.php index 779f3c10be..f117f57230 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/DropDuplicatesTransformerTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/DropDuplicatesTransformerTest.php @@ -27,7 +27,7 @@ public function test_bind_returns_the_input_schema(): void public function test_drop_duplicates_without_providing_entries(): void { $this->expectException(InvalidArgumentException::class); - $this->expectExceptionMessage('DropDuplicatesTransformer requires at least one entry'); + $this->expectExceptionMessage('DropDuplicatesTransformer requires at least one column'); new DropDuplicatesTransformer(); } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/DuplicateRowTransformerTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/DuplicateRowTransformerTest.php index c9e80c39e7..c1753bfcb9 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/DuplicateRowTransformerTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/DuplicateRowTransformerTest.php @@ -11,7 +11,7 @@ use Flow\ETL\Tests\FlowTestCase; use Flow\ETL\Tests\Mother\ListColumnsMother; use Flow\ETL\Transformer\DuplicateRowTransformer; -use Flow\ETL\WithEntry; +use Flow\ETL\WithColumn; use Flow\Types\Exception\InvalidTypeException; use function Flow\ETL\DSL\array_to_rows; @@ -26,7 +26,7 @@ use function Flow\ETL\DSL\rows; use function Flow\ETL\DSL\schema; use function Flow\ETL\DSL\string_schema; -use function Flow\ETL\DSL\with_entry; +use function Flow\ETL\DSL\with_column; use function Flow\Types\DSL\type_date; final class DuplicateRowTransformerTest extends FlowTestCase @@ -35,7 +35,7 @@ public function test_bind_widens_a_column_an_entry_overwrites_with_another_type( { static::assertEquals( schema(float_schema('amount')), - (new DuplicateRowTransformer(lit(true), with_entry('amount', lit(1.5))))->bind(schema(int_schema( + (new DuplicateRowTransformer(lit(true), with_column('amount', lit(1.5))))->bind(schema(int_schema( 'amount', )))->output, ); @@ -48,7 +48,9 @@ public function test_bind_refuses_an_entry_without_a_common_type_with_the_column 'Cannot combine types "integer", "list" - an explicit cast is required.', ); - (new DuplicateRowTransformer(lit(true), with_entry('amount', lit([1, 2]))))->bind(schema(int_schema('amount'))); + (new DuplicateRowTransformer(lit(true), with_column('amount', lit([1, 2]))))->bind(schema(int_schema( + 'amount', + ))); } public function test_a_literal_condition_duplicates_every_row(): void @@ -60,7 +62,7 @@ public function test_a_literal_condition_duplicates_every_row(): void ['id' => 2, 'flag' => null], ['id' => 2, 'flag' => true], ], - (new DuplicateRowTransformer(true, with_entry('flag', lit(true)))) + (new DuplicateRowTransformer(true, with_column('flag', lit(true)))) ->transform(array_to_rows([['id' => 1], ['id' => 2]], schema(int_schema('id'))), flow_context(config())) ->toArray(), ); @@ -70,7 +72,7 @@ public function test_a_transformation_that_adds_a_column_conforms_the_untouched_ { $transformed = (new DuplicateRowTransformer( ref('status')->equals(lit('inactive')), - with_entry('flag', lit(true)), + with_column('flag', lit(true)), ))->transform( array_to_rows( [['id' => 1, 'status' => 'active'], ['id' => 2, 'status' => 'inactive']], @@ -94,7 +96,7 @@ public function test_a_transformation_that_narrows_a_column_widens_it_back(): vo { $transformed = (new DuplicateRowTransformer( ref('status')->equals(lit('inactive')), - with_entry('amount', ref('amount')->multiply(lit(-1))), + with_column('amount', ref('amount')->multiply(lit(-1))), ))->transform( array_to_rows( [ @@ -149,8 +151,8 @@ public function test_applying_two_transformations(): void $transformedRows = (new DuplicateRowTransformer( ref('status')->equals(lit('inactive')), - with_entry('amount', ref('amount')->multiply(lit(-1))), - with_entry('date_updated', ref('date_deactivated')), + with_column('amount', ref('amount')->multiply(lit(-1))), + with_column('date_updated', ref('date_deactivated')), ))->transform($rows, flow_context()); static::assertCount(4, $transformedRows); @@ -200,7 +202,7 @@ public function test_bind_declares_a_column_added_only_to_the_matched_rows_as_nu schema(int_schema('id'), string_schema('status'), bool_schema('flag', nullable: true)), (new DuplicateRowTransformer( ref('status')->equals(lit('inactive')), - with_entry('flag', lit(true)), + with_column('flag', lit(true)), ))->bind(schema(int_schema('id'), string_schema('status')))->output, ); } @@ -211,7 +213,7 @@ public function test_bind_refuses_a_condition_referencing_a_column_missing_from_ (new DuplicateRowTransformer( ref('missing')->equals(lit('x')), - with_entry('flag', lit(true)), + with_column('flag', lit(true)), ))->bind(schema(int_schema('id'))); } @@ -228,7 +230,7 @@ public function test_doing_nothing_when_condition_is_not_satisfied(): void $transformedRows = (new DuplicateRowTransformer( ref('status')->equals(lit('inactive')), - new WithEntry('amount', ref('amount')->multiply(lit(-1))), + new WithColumn('amount', ref('amount')->multiply(lit(-1))), ))->transform($rows, flow_context()); static::assertCount(3, $transformedRows); @@ -256,7 +258,7 @@ public function test_duplicating_row(): void $transformedRows = (new DuplicateRowTransformer( ref('status')->equals(lit('inactive')), - new WithEntry('amount', ref('amount')->multiply(lit(-1))), + new WithColumn('amount', ref('amount')->multiply(lit(-1))), ))->transform($rows, flow_context()); static::assertCount(4, $transformedRows); @@ -283,10 +285,10 @@ public function test_bind_refuses_an_expand_in_the_condition(): void { $this->expectException(InvalidArgumentException::class); $this->expectExceptionMessage( - 'duplicateRow() cannot contain array_expand(), it turns one row into many rows. Expand with withEntry() first, then use the new column.', + 'duplicateRow() cannot contain array_expand(), it turns one row into many rows. Expand with withColumn() first, then use the new column.', ); - (new DuplicateRowTransformer(ref('flags')->expand()->equals(lit(true)), with_entry('flag', lit(true))))->bind( + (new DuplicateRowTransformer(ref('flags')->expand()->equals(lit(true)), with_column('flag', lit(true))))->bind( ListColumnsMother::schema(), ); } @@ -295,10 +297,10 @@ public function test_bind_refuses_an_expand_in_an_entry(): void { $this->expectException(InvalidArgumentException::class); $this->expectExceptionMessage( - 'duplicateRow() cannot contain array_expand(), it turns one row into many rows. Expand with withEntry() first, then use the new column.', + 'duplicateRow() cannot contain array_expand(), it turns one row into many rows. Expand with withColumn() first, then use the new column.', ); - (new DuplicateRowTransformer(lit(true), with_entry('t', ref('tags')->expand())))->bind( + (new DuplicateRowTransformer(lit(true), with_column('t', ref('tags')->expand())))->bind( ListColumnsMother::schema(), ); } @@ -307,10 +309,10 @@ public function test_an_unbound_transform_refuses_an_expand_in_an_entry(): void { $this->expectException(InvalidArgumentException::class); $this->expectExceptionMessage( - 'duplicateRow() cannot contain array_expand(), it turns one row into many rows. Expand with withEntry() first, then use the new column.', + 'duplicateRow() cannot contain array_expand(), it turns one row into many rows. Expand with withColumn() first, then use the new column.', ); - (new DuplicateRowTransformer(lit(true), with_entry('t', ref('tags')->expand())))->transform( + (new DuplicateRowTransformer(lit(true), with_column('t', ref('tags')->expand())))->transform( ListColumnsMother::rows()->matchTo(ListColumnsMother::schema(), new AdaptiveBackend()), flow_context(config()), ); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/PruneEntriesTransformerTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/PruneColumnsTransformerTest.php similarity index 83% rename from src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/PruneEntriesTransformerTest.php rename to src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/PruneColumnsTransformerTest.php index b18cc603cd..f56c58d9fc 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/PruneEntriesTransformerTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/PruneColumnsTransformerTest.php @@ -5,7 +5,7 @@ namespace Flow\ETL\Tests\Unit\Transformer; use Flow\ETL\Tests\FlowTestCase; -use Flow\ETL\Transformer\PruneEntriesTransformer; +use Flow\ETL\Transformer\PruneColumnsTransformer; use function Flow\ETL\DSL\array_to_rows; use function Flow\ETL\DSL\flow_context; @@ -14,13 +14,13 @@ use function Flow\ETL\DSL\schema; use function Flow\ETL\DSL\str_schema; -final class PruneEntriesTransformerTest extends FlowTestCase +final class PruneColumnsTransformerTest extends FlowTestCase { public function test_bind_keeps_only_the_declared_refs_in_ref_order(): void { static::assertEquals( schema(str_schema('name'), int_schema('id')), - (new PruneEntriesTransformer(ref('name'), ref('id'), ref('missing')))->bind(schema( + (new PruneColumnsTransformer(ref('name'), ref('id'), ref('missing')))->bind(schema( int_schema('id'), str_schema('name'), int_schema('dropped'), @@ -32,7 +32,7 @@ public function test_bind_with_no_ref_present_in_the_input_derives_an_empty_sche { static::assertEquals( schema(), - (new PruneEntriesTransformer(ref('missing')))->bind(schema(int_schema('id')))->output, + (new PruneColumnsTransformer(ref('missing')))->bind(schema(int_schema('id')))->output, ); } @@ -40,7 +40,7 @@ public function test_keeping_only_the_given_entries(): void { static::assertSame( [['id' => 1, 'name' => 'a']], - (new PruneEntriesTransformer(ref('id'), ref('name'))) + (new PruneColumnsTransformer(ref('id'), ref('name'))) ->transform( array_to_rows( [['id' => 1, 'name' => 'a', 'dropped' => 9]], @@ -56,7 +56,7 @@ public function test_entry_missing_from_a_row_is_padded_from_its_nullable_declar { static::assertSame( [['id' => 1, 'name' => 'a'], ['id' => 2, 'name' => null]], - (new PruneEntriesTransformer(ref('id'), ref('name'))) + (new PruneColumnsTransformer(ref('id'), ref('name'))) ->transform( array_to_rows( [['id' => 1, 'name' => 'a'], ['id' => 2]], @@ -72,7 +72,7 @@ public function test_row_without_any_of_the_given_entries_becomes_empty(): void { static::assertSame( [[]], - (new PruneEntriesTransformer(ref('missing'))) + (new PruneColumnsTransformer(ref('missing'))) ->transform(array_to_rows([['id' => 1]], schema(int_schema('id'))), flow_context()) ->toArray(), ); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/Rename/RenameMapEntryStrategyTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/Rename/RenameMapColumnStrategyTest.php similarity index 95% rename from src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/Rename/RenameMapEntryStrategyTest.php rename to src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/Rename/RenameMapColumnStrategyTest.php index c763cbdec2..0580788f70 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/Rename/RenameMapEntryStrategyTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/Rename/RenameMapColumnStrategyTest.php @@ -10,7 +10,7 @@ use function Flow\ETL\DSL\schema; use function Flow\ETL\DSL\str_schema; -final class RenameMapEntryStrategyTest extends FlowTestCase +final class RenameMapColumnStrategyTest extends FlowTestCase { public function test_renames_filters_only_existing_names(): void { diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/RenameEntryTransformerTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/RenameColumnTransformerTest.php similarity index 84% rename from src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/RenameEntryTransformerTest.php rename to src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/RenameColumnTransformerTest.php index e83f1c0f7a..1ff36b35c0 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/RenameEntryTransformerTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/RenameColumnTransformerTest.php @@ -5,7 +5,7 @@ namespace Flow\ETL\Tests\Unit\Transformer; use Flow\ETL\Tests\FlowTestCase; -use Flow\ETL\Transformer\RenameEntryTransformer; +use Flow\ETL\Transformer\RenameColumnTransformer; use function Flow\ETL\DSL\array_to_rows; use function Flow\ETL\DSL\bool_schema; @@ -20,11 +20,11 @@ use function Flow\Types\DSL\type_datetime; use function Flow\Types\DSL\type_json; -final class RenameEntryTransformerTest extends FlowTestCase +final class RenameColumnTransformerTest extends FlowTestCase { public function test_renaming_keeps_the_column_position_and_its_values(): void { - $renamed = (new RenameEntryTransformer('a', 'x'))->transform( + $renamed = (new RenameColumnTransformer('a', 'x'))->transform( array_to_rows([['a' => 1, 'b' => 2]], schema(integer_schema('a'), integer_schema('b'))), flow_context(config()), ); @@ -37,7 +37,7 @@ public function test_bind_renames_the_column_in_place(): void { static::assertEquals( schema(integer_schema('new_int'), string_schema('status')), - (new RenameEntryTransformer('old_int', 'new_int'))->bind(schema( + (new RenameColumnTransformer('old_int', 'new_int'))->bind(schema( integer_schema('old_int'), string_schema('status'), ))->output, @@ -48,14 +48,14 @@ public function test_bind_renaming_a_column_to_its_own_name_returns_the_input_sc { $input = schema(integer_schema('id')); - static::assertEquals($input, (new RenameEntryTransformer('id', 'id'))->bind($input)->output); + static::assertEquals($input, (new RenameColumnTransformer('id', 'id'))->bind($input)->output); } public function test_renaming_entries(): void { $context = flow_context(config()); - $rows = (new RenameEntryTransformer('old_int', 'new_int'))->transform( + $rows = (new RenameColumnTransformer('old_int', 'new_int'))->transform( array_to_rows( [[ 'old_int' => 1000, @@ -100,7 +100,7 @@ public function test_renaming_entries(): void string_schema('nothing', nullable: true), ), ), - (new RenameEntryTransformer('null', 'nothing'))->transform($rows, $context), + (new RenameColumnTransformer('null', 'nothing'))->transform($rows, $context), ); } @@ -108,7 +108,7 @@ public function test_renaming_entry_preserves_metadata(): void { $metadata = schema_metadata(['description' => 'test metadata', 'priority' => 1]); - $outputRows = (new RenameEntryTransformer('old_name', 'new_name'))->transform(array_to_rows([[ + $outputRows = (new RenameColumnTransformer('old_name', 'new_name'))->transform(array_to_rows([[ 'old_name' => 'test value', ]], schema(string_schema('old_name', metadata: $metadata))), flow_context(config())); @@ -120,7 +120,7 @@ public function test_renaming_to_same_name_returns_same_rows_instance(): void { $inputRows = array_to_rows([['name' => 'value']], schema(string_schema('name'))); - static::assertSame($inputRows, (new RenameEntryTransformer('name', 'name'))->transform( + static::assertSame($inputRows, (new RenameColumnTransformer('name', 'name'))->transform( $inputRows, flow_context(config()), )); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/RenameEachEntryTransformerTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/RenameEachColumnTransformerTest.php similarity index 65% rename from src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/RenameEachEntryTransformerTest.php rename to src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/RenameEachColumnTransformerTest.php index b295dc4a9a..c098399b2a 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/RenameEachEntryTransformerTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/RenameEachColumnTransformerTest.php @@ -7,23 +7,23 @@ use Flow\ETL\Exception\InvalidArgumentException; use Flow\ETL\String\StringStyles; use Flow\ETL\Tests\FlowTestCase; -use Flow\ETL\Transformer\Rename\RenameCaseEntryStrategy; -use Flow\ETL\Transformer\Rename\RenameMapEntryStrategy; -use Flow\ETL\Transformer\RenameEachEntryTransformer; +use Flow\ETL\Transformer\Rename\RenameCaseColumnStrategy; +use Flow\ETL\Transformer\Rename\RenameMapColumnStrategy; +use Flow\ETL\Transformer\RenameEachColumnTransformer; use function Flow\ETL\DSL\int_schema; use function Flow\ETL\DSL\schema; use function Flow\ETL\DSL\str_schema; -final class RenameEachEntryTransformerTest extends FlowTestCase +final class RenameEachColumnTransformerTest extends FlowTestCase { public function test_bind_feeds_each_strategy_the_output_of_the_previous_one(): void { static::assertEquals( schema(int_schema('uid'), str_schema('user_name')), - (new RenameEachEntryTransformer( - new RenameMapEntryStrategy(['id' => 'user_id']), - new RenameMapEntryStrategy(['user_id' => 'uid', 'name' => 'user_name']), + (new RenameEachColumnTransformer( + new RenameMapColumnStrategy(['id' => 'user_id']), + new RenameMapColumnStrategy(['user_id' => 'uid', 'name' => 'user_name']), ))->bind(schema(int_schema('id'), str_schema('name')))->output, ); } @@ -32,7 +32,7 @@ public function test_bind_renames_every_column_the_case_strategy_converts(): voi { static::assertEquals( schema(int_schema('userId'), str_schema('userName')), - (new RenameEachEntryTransformer(new RenameCaseEntryStrategy(StringStyles::CAMEL)))->bind(schema( + (new RenameEachColumnTransformer(new RenameCaseColumnStrategy(StringStyles::CAMEL)))->bind(schema( int_schema('user_id'), str_schema('user_name'), ))->output, @@ -43,7 +43,7 @@ public function test_bind_renames_a_numeric_entry_name(): void { static::assertEquals( schema(str_schema('broker'), int_schema('y_2023')), - (new RenameEachEntryTransformer(new RenameMapEntryStrategy(['2023' => 'y_2023'])))->bind(schema( + (new RenameEachColumnTransformer(new RenameMapColumnStrategy(['2023' => 'y_2023'])))->bind(schema( str_schema('broker'), int_schema('2023'), ))->output, @@ -54,9 +54,9 @@ public function test_bind_chains_strategies_through_a_numeric_entry_name(): void { static::assertEquals( schema(int_schema('year')), - (new RenameEachEntryTransformer( - new RenameMapEntryStrategy(['id' => '2023']), - new RenameMapEntryStrategy(['2023' => 'year']), + (new RenameEachColumnTransformer( + new RenameMapColumnStrategy(['id' => '2023']), + new RenameMapColumnStrategy(['2023' => 'year']), ))->bind(schema(int_schema('id')))->output, ); } @@ -66,6 +66,6 @@ public function test_renaming_fails_without_any_strategy(): void $this->expectException(InvalidArgumentException::class); $this->expectExceptionMessage('At least one strategy must be provided.'); - new RenameEachEntryTransformer(); + new RenameEachColumnTransformer(); } } diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/ScalarFunctionFilterTransformerTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/ScalarFunctionFilterTransformerTest.php index 68ee8e404a..f4b974bda9 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/ScalarFunctionFilterTransformerTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/ScalarFunctionFilterTransformerTest.php @@ -214,7 +214,7 @@ public function test_bind_refuses_an_expand_in_the_predicate(): void { $this->expectException(InvalidArgumentException::class); $this->expectExceptionMessage( - 'filter() cannot contain array_expand(), it turns one row into many rows. Expand with withEntry() first, then use the new column.', + 'filter() cannot contain array_expand(), it turns one row into many rows. Expand with withColumn() first, then use the new column.', ); (new ScalarFunctionFilterTransformer(ref('tags')->expand()->equals(lit('x'))))->bind( @@ -226,7 +226,7 @@ public function test_bind_refuses_a_root_expand_over_booleans(): void { $this->expectException(InvalidArgumentException::class); $this->expectExceptionMessage( - 'filter() cannot contain array_expand(), it turns one row into many rows. Expand with withEntry() first, then use the new column.', + 'filter() cannot contain array_expand(), it turns one row into many rows. Expand with withColumn() first, then use the new column.', ); (new ScalarFunctionFilterTransformer(ref('flags')->expand()))->bind(ListColumnsMother::schema()); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/ScalarFunctionTransformer/MathTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/ScalarFunctionTransformer/MathTest.php index f81e061c54..6f4eadaf7c 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/ScalarFunctionTransformer/MathTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/ScalarFunctionTransformer/MathTest.php @@ -143,9 +143,9 @@ public function test_divide( ?Rounding $rounding, array $result, ): void { - $rows = (new ScalarFunctionTransformer('result', ref($a->entry()->name()) - ->divide(ref($b->entry()->name()), $scale, $rounding)))->transform( - array_to_rows([[$a->entry()->name() => $aValue, $b->entry()->name() => $bValue]], schema($a, $b)), + $rows = (new ScalarFunctionTransformer('result', ref($a->reference()->name()) + ->divide(ref($b->reference()->name()), $scale, $rounding)))->transform( + array_to_rows([[$a->reference()->name() => $aValue, $b->reference()->name() => $bValue]], schema($a, $b)), flow_context(), ); @@ -162,9 +162,9 @@ public function test_minus(Definition $a, mixed $aValue, Definition $b, mixed $b { $rows = (new ScalarFunctionTransformer( 'result', - ref($a->entry()->name())->minus(ref($b->entry()->name())), + ref($a->reference()->name())->minus(ref($b->reference()->name())), ))->transform( - array_to_rows([[$a->entry()->name() => $aValue, $b->entry()->name() => $bValue]], schema($a, $b)), + array_to_rows([[$a->reference()->name() => $aValue, $b->reference()->name() => $bValue]], schema($a, $b)), flow_context(), ); @@ -181,9 +181,9 @@ public function test_multiply(Definition $a, mixed $aValue, Definition $b, mixed { $rows = (new ScalarFunctionTransformer( 'result', - ref($a->entry()->name())->multiply(ref($b->entry()->name())), + ref($a->reference()->name())->multiply(ref($b->reference()->name())), ))->transform( - array_to_rows([[$a->entry()->name() => $aValue, $b->entry()->name() => $bValue]], schema($a, $b)), + array_to_rows([[$a->reference()->name() => $aValue, $b->reference()->name() => $bValue]], schema($a, $b)), flow_context(), ); @@ -200,9 +200,9 @@ public function test_plus(Definition $a, mixed $aValue, Definition $b, mixed $bV { $rows = (new ScalarFunctionTransformer( 'result', - ref($a->entry()->name())->plus(ref($b->entry()->name())), + ref($a->reference()->name())->plus(ref($b->reference()->name())), ))->transform( - array_to_rows([[$a->entry()->name() => $aValue, $b->entry()->name() => $bValue]], schema($a, $b)), + array_to_rows([[$a->reference()->name() => $aValue, $b->reference()->name() => $bValue]], schema($a, $b)), flow_context(), ); @@ -219,9 +219,9 @@ public function test_power(Definition $a, mixed $aValue, Definition $b, mixed $b { $rows = (new ScalarFunctionTransformer( 'result', - ref($a->entry()->name())->power(ref($b->entry()->name())), + ref($a->reference()->name())->power(ref($b->reference()->name())), ))->transform( - array_to_rows([[$a->entry()->name() => $aValue, $b->entry()->name() => $bValue]], schema($a, $b)), + array_to_rows([[$a->reference()->name() => $aValue, $b->reference()->name() => $bValue]], schema($a, $b)), flow_context(), ); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/ScalarFunctionTransformerTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/ScalarFunctionTransformerTest.php index f5387428e4..1fb49cf1fe 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/ScalarFunctionTransformerTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/ScalarFunctionTransformerTest.php @@ -123,7 +123,7 @@ public function test_plus_expression_on_non_empty_rows(): void public function test_plus_expression_on_non_existing_rows(): void { $this->expectException(InvalidArgumentException::class); - $this->expectExceptionMessage('Schema definition for entry "num" not found.'); + $this->expectExceptionMessage('Schema definition for column "num" not found.'); static::assertEquals( [ @@ -150,9 +150,9 @@ public function test_an_undeclared_payload_key_is_dropped(): void ); } - public function test_unpack_results_ignores_a_definition_passed_to_with_entry(): void + public function test_unpack_results_ignores_a_definition_passed_to_with_column(): void { - // a Definition passed to withEntry() cannot describe an N-column result, so unpack's own + // a Definition passed to withColumn() cannot describe an N-column result, so unpack's own // declared Schema is what names and types the produced columns $result = (new ScalarFunctionTransformer( str_schema('array'), @@ -289,7 +289,7 @@ public function test_bind_refuses_an_expanding_function(ScalarFunction $function $this->expectException(InvalidArgumentException::class); $this->expectExceptionMessage( 'transform() cannot contain array_expand(), it turns one row into many rows. ' - . 'Expand with withEntry() first, then use the new column.', + . 'Expand with withColumn() first, then use the new column.', ); (new ScalarFunctionTransformer('v', $function))->bind(ListColumnsMother::schema()); diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/SelectEntriesTransformerTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/SelectColumnsTransformerTest.php similarity index 83% rename from src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/SelectEntriesTransformerTest.php rename to src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/SelectColumnsTransformerTest.php index cb0c616818..566c01526d 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/SelectEntriesTransformerTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/SelectColumnsTransformerTest.php @@ -6,7 +6,7 @@ use Flow\ETL\Exception\SchemaDefinitionNotFoundException; use Flow\ETL\Tests\FlowTestCase; -use Flow\ETL\Transformer\SelectEntriesTransformer; +use Flow\ETL\Transformer\SelectColumnsTransformer; use function Flow\ETL\DSL\array_to_rows; use function Flow\ETL\DSL\config; @@ -18,13 +18,13 @@ use function Flow\ETL\DSL\string_schema; use function Flow\Types\DSL\type_json; -final class SelectEntriesTransformerTest extends FlowTestCase +final class SelectColumnsTransformerTest extends FlowTestCase { public function test_bind_projects_and_reorders_to_the_selected_columns(): void { static::assertEquals( schema(str_schema('name'), int_schema('id')), - (new SelectEntriesTransformer('name', 'id'))->bind(schema( + (new SelectColumnsTransformer('name', 'id'))->bind(schema( int_schema('id'), str_schema('name'), json_schema('array'), @@ -35,9 +35,9 @@ public function test_bind_projects_and_reorders_to_the_selected_columns(): void public function test_bind_refuses_a_column_missing_from_the_input(): void { $this->expectException(SchemaDefinitionNotFoundException::class); - $this->expectExceptionMessage('Schema definition for entry "not_existing" not found'); + $this->expectExceptionMessage('Schema definition for column "not_existing" not found'); - (new SelectEntriesTransformer('not_existing'))->bind(schema(int_schema('id'))); + (new SelectColumnsTransformer('not_existing'))->bind(schema(int_schema('id'))); } public function test_selecting_entries(): void @@ -47,7 +47,7 @@ public function test_selecting_entries(): void schema(int_schema('id'), str_schema('name'), json_schema('array')), ); - $transformer = new SelectEntriesTransformer('name'); + $transformer = new SelectColumnsTransformer('name'); static::assertSame( [ ['name' => 'Row Name'], @@ -64,14 +64,14 @@ public function test_selecting_not_existing_entries(): void ); $this->expectException(SchemaDefinitionNotFoundException::class); - $this->expectExceptionMessage('Schema definition for entry "not_existing" not found'); + $this->expectExceptionMessage('Schema definition for column "not_existing" not found'); - (new SelectEntriesTransformer('not_existing'))->transform($rows, flow_context(config())); + (new SelectColumnsTransformer('not_existing'))->transform($rows, flow_context(config())); } public function test_selecting_an_entry_missing_from_some_rows_widens_to_a_nullable_real_type(): void { - $transformer = new SelectEntriesTransformer('id'); + $transformer = new SelectColumnsTransformer('id'); static::assertEquals( schema(int_schema('id', nullable: true)), @@ -94,7 +94,7 @@ public function test_using_select_entries_in_order_to_change_entries_order(): vo schema(int_schema('id'), str_schema('name'), json_schema('array')), ); - $result = (new SelectEntriesTransformer('name', 'id', 'array'))->transform($rows, flow_context(config())); + $result = (new SelectColumnsTransformer('name', 'id', 'array'))->transform($rows, flow_context(config())); static::assertSame(['name', 'id', 'array'], $result->schema()->references()->names()); static::assertSame( @@ -109,7 +109,7 @@ public function test_select_carries_a_not_null_definition_through_unchanged(): v { static::assertEquals( schema(int_schema('id')), - (new SelectEntriesTransformer('id')) + (new SelectColumnsTransformer('id')) ->transform( array_to_rows( [['id' => 1, 'name' => 'Alice'], ['id' => 2, 'name' => 'Bob']], diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/UntilTransformerTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/UntilTransformerTest.php index 1a7740e582..19a6604274 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/UntilTransformerTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/UntilTransformerTest.php @@ -147,7 +147,7 @@ public function test_bind_refuses_an_expand_in_the_predicate(): void { $this->expectException(InvalidArgumentException::class); $this->expectExceptionMessage( - 'until() cannot contain array_expand(), it turns one row into many rows. Expand with withEntry() first, then use the new column.', + 'until() cannot contain array_expand(), it turns one row into many rows. Expand with withColumn() first, then use the new column.', ); (new UntilTransformer(ref('tags')->expand()->equals(lit('x'))))->bind(ListColumnsMother::schema()); diff --git a/src/core/etl/tests/Flow/Floe/Tests/Context/FloeGoldenContext.php b/src/core/etl/tests/Flow/Floe/Tests/Context/FloeGoldenContext.php index dc060dbe2d..6465d9b8e2 100644 --- a/src/core/etl/tests/Flow/Floe/Tests/Context/FloeGoldenContext.php +++ b/src/core/etl/tests/Flow/Floe/Tests/Context/FloeGoldenContext.php @@ -22,7 +22,7 @@ final class FloeGoldenContext public static function batches(): array { return [ - 'all-entry-types' => [RowsMother::withAllEntryTypes()], + 'all-column-types' => [RowsMother::withAllColumnTypes()], 'heterogeneous' => [RowsMother::heterogeneous()], 'empty' => [RowsMother::empty()], ]; diff --git a/src/core/etl/tests/Flow/Floe/Tests/Fixtures/v2/all-entry-types.floe b/src/core/etl/tests/Flow/Floe/Tests/Fixtures/v2/all-column-types.floe similarity index 100% rename from src/core/etl/tests/Flow/Floe/Tests/Fixtures/v2/all-entry-types.floe rename to src/core/etl/tests/Flow/Floe/Tests/Fixtures/v2/all-column-types.floe diff --git a/src/core/etl/tests/Flow/Floe/Tests/Integration/FloeDataFrameTest.php b/src/core/etl/tests/Flow/Floe/Tests/Integration/FloeDataFrameTest.php index 4841f06e93..d969536e40 100644 --- a/src/core/etl/tests/Flow/Floe/Tests/Integration/FloeDataFrameTest.php +++ b/src/core/etl/tests/Flow/Floe/Tests/Integration/FloeDataFrameTest.php @@ -223,7 +223,7 @@ public function test_transformation_loader_writes_all_batches_to_floe(): void data_frame() ->read(from_sequence_number('id', 1, 12)) - ->withEntry('name', lit('dropped by the transformation')) + ->withColumn('name', lit('dropped by the transformation')) ->batchSize(4) ->write(to_transformation(select('id'), to_floe($path)->saveMode(overwrite()))) ->run(); diff --git a/src/core/etl/tests/Flow/Floe/Tests/Integration/FloeExtractorTest.php b/src/core/etl/tests/Flow/Floe/Tests/Integration/FloeExtractorTest.php index 02c825fba4..cf867d24d2 100644 --- a/src/core/etl/tests/Flow/Floe/Tests/Integration/FloeExtractorTest.php +++ b/src/core/etl/tests/Flow/Floe/Tests/Integration/FloeExtractorTest.php @@ -287,7 +287,7 @@ public function test_a_utc_file_is_rezoned_after_reading(): void ->assert( df() ->read(from_floe($path, filesystem: $this->fs())) - ->withEntry('at', to_timezone(ref('at'), 'Europe/Warsaw')) + ->withColumn('at', to_timezone(ref('at'), 'Europe/Warsaw')) ->fetch() ->column('at') ->value(0), @@ -344,7 +344,7 @@ public function test_xml_nodes_written_before_utf8_node_documents_read_back_and_ ], df() ->read(from_floe($loaded, filesystem: $this->fs())) - ->withEntry('node', ref('node')->cast(type_string())) + ->withColumn('node', ref('node')->cast(type_string())) ->fetch() ->toArray(), ); diff --git a/src/core/etl/tests/Flow/Floe/Tests/Integration/FloeStreamReaderTest.php b/src/core/etl/tests/Flow/Floe/Tests/Integration/FloeStreamReaderTest.php index 3f3813c64d..76b09c2069 100644 --- a/src/core/etl/tests/Flow/Floe/Tests/Integration/FloeStreamReaderTest.php +++ b/src/core/etl/tests/Flow/Floe/Tests/Integration/FloeStreamReaderTest.php @@ -110,9 +110,9 @@ public function test_file_larger_than_compaction_threshold_round_trips(): void static::assertSame($written, $read); } - public function test_round_trip_of_all_entry_types_through_local_filesystem(): void + public function test_round_trip_of_all_column_types_through_local_filesystem(): void { - $rows = RowsMother::withAllEntryTypes(); + $rows = RowsMother::withAllColumnTypes(); $path = $this->cacheDir->suffix('all-types.floe'); $writer = new FloeWriter($this->fs(), $rows->schema(), new AdaptiveBackend()); diff --git a/src/core/etl/tests/Flow/Floe/Tests/Mother/RowsMother.php b/src/core/etl/tests/Flow/Floe/Tests/Mother/RowsMother.php index 278a70469e..39d67b8d7e 100644 --- a/src/core/etl/tests/Flow/Floe/Tests/Mother/RowsMother.php +++ b/src/core/etl/tests/Flow/Floe/Tests/Mother/RowsMother.php @@ -99,7 +99,7 @@ public static function heterogeneous(): Rows /** * Every column type except html/html_element, which require PHP 8.4. */ - public static function withAllEntryTypes(): Rows + public static function withAllColumnTypes(): Rows { $structure = type_structure([ 'street' => type_string(), diff --git a/src/core/etl/tests/Flow/Floe/Tests/Unit/FloeReaderTest.php b/src/core/etl/tests/Flow/Floe/Tests/Unit/FloeReaderTest.php index abe2a24bfa..89350e9e6a 100644 --- a/src/core/etl/tests/Flow/Floe/Tests/Unit/FloeReaderTest.php +++ b/src/core/etl/tests/Flow/Floe/Tests/Unit/FloeReaderTest.php @@ -35,11 +35,11 @@ final class FloeReaderTest extends TestCase { - public function test_all_entry_types_round_trip(): void + public function test_all_column_types_round_trip(): void { $filesystem = memory_filesystem(); $path = path('memory://all-types.floe'); - $rows = RowsMother::withAllEntryTypes(); + $rows = RowsMother::withAllColumnTypes(); $writer = new FloeWriter($filesystem, $rows->schema(), new AdaptiveBackend()); $writer->create($path); diff --git a/src/core/etl/tests/Flow/Floe/Tests/Unit/FloeSerializerTest.php b/src/core/etl/tests/Flow/Floe/Tests/Unit/FloeSerializerTest.php index 97b5a6e1f1..bc92fbc0c0 100644 --- a/src/core/etl/tests/Flow/Floe/Tests/Unit/FloeSerializerTest.php +++ b/src/core/etl/tests/Flow/Floe/Tests/Unit/FloeSerializerTest.php @@ -40,7 +40,7 @@ public static function values(): array )], 'rows' => [array_to_rows([['id' => 1], ['id' => 2]], schema(int_schema('id')))], 'heterogeneous rows' => [RowsMother::heterogeneous()], - 'all entry types' => [RowsMother::withAllEntryTypes()], + 'all column types' => [RowsMother::withAllColumnTypes()], 'empty rows' => [rows(schema())], 'empty rows with a declared column' => [rows(schema(str_schema('country')))], ]; @@ -72,7 +72,7 @@ public function test_serialize_unserialize_round_trip(Rows $value): void public function test_streaming_mode_round_trip(): void { $serializer = new FloeSerializer(new AdaptiveBackend(), 2); - $value = RowsMother::withAllEntryTypes(); + $value = RowsMother::withAllColumnTypes(); static::assertEquals($value, unserialize_from_string($serializer, serialize_to_string($serializer, $value))); } @@ -94,7 +94,7 @@ public function test_heterogeneous_rows_round_trip_unpadded_but_union_widened(): { $serializer = new FloeSerializer(new AdaptiveBackend()); // one write session = one schema: rows keep their own columns (unpadded) but - // entry types widen to the batch union - id and name become nullable because + // column types widen to the batch union - id and name become nullable because // each is absent from some row. Values are unchanged; only nullability widens. $value = array_to_rows( [['id' => 1], ['id' => 2, 'name' => 'John'], ['name' => 'Jane']], diff --git a/src/core/etl/tests/Flow/Floe/Tests/Unit/FloeValueRoundTripTest.php b/src/core/etl/tests/Flow/Floe/Tests/Unit/FloeValueRoundTripTest.php index f2f9d6fc66..4a677728a3 100644 --- a/src/core/etl/tests/Flow/Floe/Tests/Unit/FloeValueRoundTripTest.php +++ b/src/core/etl/tests/Flow/Floe/Tests/Unit/FloeValueRoundTripTest.php @@ -58,7 +58,7 @@ */ final class FloeValueRoundTripTest extends TestCase { - public function test_datetime_entries(): void + public function test_datetime_columns(): void { static::assertEquals( $rows = array_to_rows( @@ -84,7 +84,7 @@ public function test_datetime_entries(): void ); } - public function test_entries_with_null_values(): void + public function test_columns_with_null_values(): void { $rows = array_to_rows( [[ @@ -122,7 +122,7 @@ enum_schema('enum', BackedStringEnum::class, nullable: true), static::assertEquals($rows, FloeStreamReaderContext::roundTrip($rows)); } - public function test_enum_entries(): void + public function test_enum_columns(): void { static::assertEquals( $rows = array_to_rows( @@ -134,7 +134,7 @@ public function test_enum_entries(): void } #[RequiresPhp('>= 8.4.0')] - public function test_html_entries(): void + public function test_html_columns(): void { $rows = array_to_rows([[ 'html' => type_html()->cast('

hello

'), @@ -146,7 +146,7 @@ public function test_html_entries(): void ); } - public function test_interval_entries(): void + public function test_interval_columns(): void { $negative = new DateInterval('PT5H30M'); // @mago-ignore analysis:invalid-property-write @@ -170,7 +170,7 @@ public function test_interval_entries(): void ); } - public function test_json_entries(): void + public function test_json_columns(): void { static::assertEquals( $rows = array_to_rows( @@ -191,7 +191,7 @@ public function test_json_entries(): void ); } - public function test_list_entries(): void + public function test_list_columns(): void { static::assertEquals( $rows = array_to_rows( @@ -220,7 +220,7 @@ public function test_list_entries(): void ); } - public function test_map_entries(): void + public function test_map_columns(): void { static::assertEquals( $rows = array_to_rows( @@ -235,7 +235,7 @@ public function test_map_entries(): void ); } - public function test_uuid_entries_round_trip_under_format_v2(): void + public function test_uuid_columns_round_trip_under_format_v2(): void { static::assertEquals( $rows = array_to_rows( @@ -250,7 +250,7 @@ public function test_uuid_entries_round_trip_under_format_v2(): void ); } - public function test_scalar_entries(): void + public function test_scalar_columns(): void { static::assertEquals( $rows = array_to_rows( @@ -285,7 +285,7 @@ public function test_scalar_entries(): void ); } - public function test_structure_entries(): void + public function test_structure_columns(): void { $type = type_structure([ 'street' => type_string(), @@ -323,7 +323,7 @@ public function test_structure_entries(): void ); } - public function test_interleaved_structure_entries(): void + public function test_interleaved_structure_columns(): void { $type = type_structure([ 'z' => type_integer(), @@ -354,7 +354,7 @@ public function test_round_trip_rewrites_value_key_order_into_schema_order(): vo static::assertSame(['a' => 1, 'b' => 'x'], $decoded->column('s')->value(0)); } - public function test_uuid_entries(): void + public function test_uuid_columns(): void { static::assertEquals( $rows = array_to_rows([[ @@ -364,7 +364,7 @@ public function test_uuid_entries(): void ); } - public function test_xml_entries(): void + public function test_xml_columns(): void { static::assertEquals( $rows = array_to_rows( diff --git a/src/core/etl/tests/Flow/Floe/Tests/Unit/FrameDecoderTest.php b/src/core/etl/tests/Flow/Floe/Tests/Unit/FrameDecoderTest.php index e749253715..8d7fb3ba4e 100644 --- a/src/core/etl/tests/Flow/Floe/Tests/Unit/FrameDecoderTest.php +++ b/src/core/etl/tests/Flow/Floe/Tests/Unit/FrameDecoderTest.php @@ -46,7 +46,7 @@ final class FrameDecoderTest extends TestCase public static function round_trips(): Generator { $cases = [ - 'all entry types' => RowsMother::withAllEntryTypes(), + 'all column types' => RowsMother::withAllColumnTypes(), 'worked example' => RowsMother::workedExample(), 'list with a null slot' => array_to_rows([ ['l' => [1, 2]], diff --git a/src/extension/flow-php-ext/crates/flow-batch-frame/tests/kind.rs b/src/extension/flow-php-ext/crates/flow-batch-frame/tests/kind.rs index f6610f5508..285bd8ab38 100644 --- a/src/extension/flow-php-ext/crates/flow-batch-frame/tests/kind.rs +++ b/src/extension/flow-php-ext/crates/flow-batch-frame/tests/kind.rs @@ -3,7 +3,7 @@ use flow_batch_frame::column::{decode, encode}; use flow_batch_frame::error::{Error, Part}; use flow_batch_frame::kind::{data_type, kind, kind_of, parse_schema, parse_type, Field, Kind}; -/// The footer schema of FloeGoldenTest's `v2/all-entry-types.floe`. +/// The footer schema of FloeGoldenTest's `v2/all-column-types.floe`. const GOLDEN_SCHEMA: &str = r#"[{"ref":"int","type":{"type":"integer"},"nullable":false,"metadata":[]},{"ref":"int_min","type":{"type":"integer"},"nullable":false,"metadata":[]},{"ref":"int_max","type":{"type":"integer"},"nullable":false,"metadata":[]},{"ref":"float","type":{"type":"float"},"nullable":false,"metadata":[]},{"ref":"bool","type":{"type":"boolean"},"nullable":false,"metadata":[]},{"ref":"string","type":{"type":"string"},"nullable":false,"metadata":[]},{"ref":"string_binary","type":{"type":"string"},"nullable":false,"metadata":[]},{"ref":"string_unicode","type":{"type":"string"},"nullable":false,"metadata":[]},{"ref":"string_null","type":{"type":"string"},"nullable":true,"metadata":[]},{"ref":"string_from_null","type":{"type":"null"},"nullable":true,"metadata":[]},{"ref":"datetime_immutable","type":{"type":"datetime","zone":"Europe\/Warsaw"},"nullable":false,"metadata":[]},{"ref":"datetime_mutable","type":{"type":"datetime","zone":"America\/New_York"},"nullable":false,"metadata":[]},{"ref":"datetime_before_epoch","type":{"type":"datetime","zone":"UTC"},"nullable":false,"metadata":[]},{"ref":"date","type":{"type":"date"},"nullable":false,"metadata":[]},{"ref":"time","type":{"type":"time"},"nullable":false,"metadata":[]},{"ref":"uuid","type":{"type":"uuid"},"nullable":false,"metadata":[]},{"ref":"json","type":{"type":"json"},"nullable":false,"metadata":[]},{"ref":"json_object","type":{"type":"json"},"nullable":false,"metadata":[]},{"ref":"enum_backed","type":{"type":"enum","class":"Flow\\ETL\\Tests\\Fixtures\\Enum\\BackedStringEnum"},"nullable":false,"metadata":[]},{"ref":"enum_basic","type":{"type":"enum","class":"Flow\\ETL\\Tests\\Fixtures\\Enum\\BasicEnum"},"nullable":false,"metadata":[]},{"ref":"list","type":{"type":"list","element":{"type":"integer"}},"nullable":false,"metadata":[]},{"ref":"map","type":{"type":"map","key":{"type":"string"},"value":{"type":"integer"}},"nullable":false,"metadata":[]},{"ref":"structure","type":{"type":"structure_v2","fields":[{"name":"street","type":{"type":"string"},"optional":false},{"name":"nested","type":{"type":"structure_v2","fields":[{"name":"count","type":{"type":"integer"},"optional":false},{"name":"tags","type":{"type":"list","element":{"type":"string"}},"optional":false}]},"optional":false}]},"nullable":false,"metadata":[]},{"ref":"structure_interleaved","type":{"type":"structure_v2","fields":[{"name":"z","type":{"type":"integer"},"optional":false},{"name":"a","type":{"type":"string"},"optional":true},{"name":"b","type":{"type":"string"},"optional":false}]},"nullable":false,"metadata":[]},{"ref":"xml","type":{"type":"xml"},"nullable":false,"metadata":[]},{"ref":"xml_element","type":{"type":"xml_element"},"nullable":false,"metadata":[]}]"#; fn field(name: &str, kind: Kind, optional: bool) -> Field { diff --git a/src/extension/flow-php-ext/src/backend.rs b/src/extension/flow-php-ext/src/backend.rs index d2bf5b04fb..31989b9f82 100644 --- a/src/extension/flow-php-ext/src/backend.rs +++ b/src/extension/flow-php-ext/src/backend.rs @@ -107,8 +107,8 @@ impl RustBackend { .map_err(|e| decode_exception(e, &plan.type_zv, &plan.kind))?; if bytes.len() > needed { - let entry = call_method(definition, "entry", &mut [])?; - let name = call_method(&entry, "name", &mut [])?; + let reference = call_method(definition, "reference", &mut [])?; + let name = call_method(&reference, "name", &mut [])?; return Err(invalid_argument(format!( "Column \"{}\": {} buffers left after decoding", diff --git a/src/extension/flow-php-ext/tests/phpt/082_write_no_leaks.phpt b/src/extension/flow-php-ext/tests/phpt/082_write_no_leaks.phpt index 2112c6bf1f..4800fae92a 100644 --- a/src/extension/flow-php-ext/tests/phpt/082_write_no_leaks.phpt +++ b/src/extension/flow-php-ext/tests/phpt/082_write_no_leaks.phpt @@ -24,7 +24,7 @@ $schema = all_types_schema(); $native = native_rows($schema, all_types_values()); $php = php_rows($schema, all_types_values()); // the string column holds bytes that are not UTF-8: JSON writes the batch without it -$jsonSchema = schema(...array_filter($schema->definitions(), static fn($definition): bool => $definition->entry()->name() !== 'string')); +$jsonSchema = schema(...array_filter($schema->definitions(), static fn($definition): bool => $definition->reference()->name() !== 'string')); $refusedSchema = schema(str_schema('s'), float_schema('f'), list_schema('l', type_list(type_float()))); $refused = native_rows($refusedSchema, [['s' => "\xff", 'f' => NAN, 'l' => [INF]]]); $dateTimeFormat = 'Y-m-d\TH:i:s.uP T'; diff --git a/web/landing/assets/codemirror/completions/dataframe.js b/web/landing/assets/codemirror/completions/dataframe.js index b2af0b323e..f82ae4baf1 100644 --- a/web/landing/assets/codemirror/completions/dataframe.js +++ b/web/landing/assets/codemirror/completions/dataframe.js @@ -1,7 +1,7 @@ /** * CodeMirror Completer for Flow PHP DataFrame Methods * - * DataFrame methods: 46 + * DataFrame methods: 48 * DataFrame-returning methods from classes: 3 * * This completer triggers after DataFrame-returning methods @@ -10,7 +10,7 @@ import { CompletionContext, snippet } from "@codemirror/autocomplete" // Map of DataFrame-returning methods grouped by class -const dataframeReturningMethods = {"flow":["extract","from","process","read"],"dataframe":["aggregate","batchBy","batchSize","cache","collect","collectRefs","constrain","crossJoin","drop","dropDuplicates","duplicateRow","filter","filters","join","joinEach","limit","load","match","offset","onError","repartition","rename","renameEach","rows","select","sortBy","transform","until","void","with","withEntries","withEntry","write"],"groupeddataframe":["aggregate"]}; +const dataframeReturningMethods = {"flow":["extract","from","process","read"],"dataframe":["aggregate","batchBy","batchSize","cache","collect","collectRefs","constrain","crossJoin","drop","dropDuplicates","duplicateRow","filter","filters","join","joinEach","limit","load","match","offset","onError","repartition","rename","renameEach","rows","select","sortBy","transform","until","void","with","withColumn","withColumns","withEntries","withEntry","write"],"groupeddataframe":["aggregate"]}; // DataFrame methods const dataframeMethods = [ @@ -115,7 +115,7 @@ const dataframeMethods = [ collectRefs(References $references) : self
- This method allows to collect references to all entries used in this pipeline.
\`\`\`php
(new Flow())
->read(From::chain())
->collectRefs($refs = refs())
->run();
\`\`\`
@lazy + This method allows to collect references to all columns used in this pipeline.
\`\`\`php
(new Flow())
->read(From::chain())
->collectRefs($refs = refs())
->run();
\`\`\`
@lazy
` return div @@ -199,15 +199,15 @@ const dataframeMethods = [ const div = document.createElement("div") div.innerHTML = `
- drop(Reference|string $entries) : self + drop(Reference|string $columns) : self
- Drop given entries.
@lazy + Drop given columns.
@lazy
` return div }, - apply: snippet("drop(" + "$" + "{" + "1:entries" + "}" + ")"), + apply: snippet("drop(" + "$" + "{" + "1:columns" + "}" + ")"), boost: 10 }, { label: "dropDuplicates", @@ -217,15 +217,15 @@ const dataframeMethods = [ const div = document.createElement("div") div.innerHTML = `
- dropDuplicates(Reference|string $entries) : self + dropDuplicates(Reference|string $columns) : self
- @param Reference|string ...$entries
@lazy
@return $this + @param Reference|string ...$columns
@lazy
@return $this
` return div }, - apply: snippet("dropDuplicates(" + "$" + "{" + "1:entries" + "}" + ")"), + apply: snippet("dropDuplicates(" + "$" + "{" + "1:columns" + "}" + ")"), boost: 10 }, { label: "duplicateRow", @@ -235,12 +235,12 @@ const dataframeMethods = [ const div = document.createElement("div") div.innerHTML = `
- duplicateRow(mixed $condition, WithEntry $entries) : self + duplicateRow(mixed $condition, WithColumn $columns) : self
` return div }, - apply: snippet("duplicateRow(" + "$" + "{" + "1:condition" + "}" + ", " + "$" + "{" + "2:entries" + "}" + ")"), + apply: snippet("duplicateRow(" + "$" + "{" + "1:condition" + "}" + ", " + "$" + "{" + "2:columns" + "}" + ")"), boost: 10 }, { label: "fetch", @@ -376,15 +376,15 @@ const dataframeMethods = [ const div = document.createElement("div") div.innerHTML = `
- groupBy(Reference|array|string $entries, GroupByAlgorithmBuilder $algorithm = null) : GroupedDataFrame + groupBy(Reference|array|string $columns, GroupByAlgorithmBuilder $algorithm = null) : GroupedDataFrame
- @lazy
@param GroupByReferences|Reference|string $entries a single column is grouped by on its own
@param null|GroupByAlgorithmBuilder $algorithm null defers to configuration; a builder pins the
algorithm for this operation and skips any automatic choice + @lazy
@param GroupByReferences|Reference|string $columns a single column is grouped by on its own
@param null|GroupByAlgorithmBuilder $algorithm null defers to configuration; a builder pins the
algorithm for this operation and skips any automatic choice
` return div }, - apply: snippet("groupBy(" + "$" + "{" + "1:entries" + "}" + ", " + "$" + "{" + "2:algorithm" + "}" + ")"), + apply: snippet("groupBy(" + "$" + "{" + "1:columns" + "}" + ", " + "$" + "{" + "2:algorithm" + "}" + ")"), boost: 10 }, { label: "join", @@ -520,7 +520,7 @@ const dataframeMethods = [ const div = document.createElement("div") div.innerHTML = `
- repartition(Reference|string $entry, Reference|string $entries) : self + repartition(Reference|string $column, Reference|string $columns) : self
@lazy
Shuffles the stream so every row sharing the given columns arrives in one batch. It does not
write directories - that is declared on the loader, \`to_csv(...)->partitionBy(\'region\')\`. @@ -528,7 +528,7 @@ const dataframeMethods = [ ` return div }, - apply: snippet("repartition(" + "$" + "{" + "1:entry" + "}" + ", " + "$" + "{" + "2:entries" + "}" + ")"), + apply: snippet("repartition(" + "$" + "{" + "1:column" + "}" + ", " + "$" + "{" + "2:columns" + "}" + ")"), boost: 10 }, { label: "printRows", @@ -610,7 +610,7 @@ const dataframeMethods = [ const div = document.createElement("div") div.innerHTML = `
- renameEach(RenameEntryStrategy $strategies) : self + renameEach(RenameColumnStrategy $strategies) : self
` return div @@ -679,15 +679,15 @@ const dataframeMethods = [ const div = document.createElement("div") div.innerHTML = `
- select(Reference|string $entries) : self + select(Reference|string $columns) : self
- @lazy
Keep only given entries. + @lazy
Keep only given columns.
` return div }, - apply: snippet("select(" + "$" + "{" + "1:entries" + "}" + ")"), + apply: snippet("select(" + "$" + "{" + "1:columns" + "}" + ")"), boost: 10 }, { label: "sortBy", @@ -697,15 +697,15 @@ const dataframeMethods = [ const div = document.createElement("div") div.innerHTML = `
- sortBy(Reference|array|string $entries, SortAlgorithmBuilder $algorithm = null) : self + sortBy(Reference|array|string $columns, SortAlgorithmBuilder $algorithm = null) : self
- @lazy
@param Reference|SortReferences|string $entries a single column is sorted by on its own
@param null|SortAlgorithmBuilder $algorithm null defers to configuration; a builder pins the algorithm
for this operation and skips any automatic choice + @lazy
@param Reference|SortReferences|string $columns a single column is sorted by on its own
@param null|SortAlgorithmBuilder $algorithm null defers to configuration; a builder pins the algorithm
for this operation and skips any automatic choice
` return div }, - apply: snippet("sortBy(" + "$" + "{" + "1:entries" + "}" + ", " + "$" + "{" + "2:algorithm" + "}" + ")"), + apply: snippet("sortBy(" + "$" + "{" + "1:columns" + "}" + ", " + "$" + "{" + "2:algorithm" + "}" + ")"), boost: 10 }, { label: "transform", @@ -715,7 +715,7 @@ const dataframeMethods = [ const div = document.createElement("div") div.innerHTML = `
- transform(Transformer|Transformation|Transformations|WithEntry $transformer) : self + transform(Transformer|Transformation|Transformations|WithColumn $transformer) : self
Alias for DataFrame::with().
@lazy @@ -769,7 +769,7 @@ const dataframeMethods = [ const div = document.createElement("div") div.innerHTML = `
- with(Transformer|Transformation|Transformations|WithEntry $transformer) : self + with(Transformer|Transformation|Transformations|WithColumn $transformer) : self
@lazy @@ -779,6 +779,42 @@ const dataframeMethods = [ }, apply: snippet("with(" + "$" + "{" + "1:transformer" + "}" + ")"), boost: 10 + }, { + label: "withColumn", + type: "method", + detail: "Flow\\\\ETL\\\\DataFrame", + info: () => { + const div = document.createElement("div") + div.innerHTML = ` +
+ withColumn(Definition|string $column, ScalarFunction|WindowFunction $reference) : self +
+
+ @param Definition|string $column
@lazy +
+ ` + return div + }, + apply: snippet("withColumn(" + "$" + "{" + "1:column" + "}" + ", " + "$" + "{" + "2:reference" + "}" + ")"), + boost: 10 + }, { + label: "withColumns", + type: "method", + detail: "Flow\\\\ETL\\\\DataFrame", + info: () => { + const div = document.createElement("div") + div.innerHTML = ` +
+ withColumns(array $references) : self +
+
+ @lazy
@param array|array $references +
+ ` + return div + }, + apply: snippet("withColumns(" + "$" + "{" + "1:references" + "}" + ")"), + boost: 10 }, { label: "withEntries", type: "method", @@ -790,7 +826,7 @@ const dataframeMethods = [ withEntries(array $references) : self
- @lazy
@param array|array $references + @deprecated Use {@see DataFrame::withColumns()} instead.
@lazy
@param array|array $references
` return div @@ -808,7 +844,7 @@ const dataframeMethods = [ withEntry(Definition|string $entry, ScalarFunction|WindowFunction $reference) : self
- @param Definition|string $entry
@lazy + @deprecated Use {@see DataFrame::withColumn()} instead.
@param Definition|string $entry
@lazy
` return div diff --git a/web/landing/assets/codemirror/completions/dsl.js b/web/landing/assets/codemirror/completions/dsl.js index 39a2d9dc96..503f833fd3 100644 --- a/web/landing/assets/codemirror/completions/dsl.js +++ b/web/landing/assets/codemirror/completions/dsl.js @@ -484,7 +484,7 @@ const dslFunctions = [ array_expand(ScalarFunction $function, ArrayExpand $expand = Flow\\ETL\\Function\\ArrayExpand\\ArrayExpand::...) : ArrayExpand
- Expands each value into entry, if there are more than one value, multiple rows will be created.
Array keys are ignored, only values are used to create new rows.
Nested in another function (structure(), concat(), ...) it still gives one row per element. Several
expands in one expression are zipped to the longest list; a shorter one gives null, so its element
type becomes nullable. It is refused inside another array_expand() and in filter(), until(),
duplicateRow(), aggregate(), over() and onEach().
Before:
+--+-------------------+
|id| array|
+--+-------------------+
| 1|{\"a\":1,\"b\":2,\"c\":3}|
+--+-------------------+
After:
+--+--------+
|id|expanded|
+--+--------+
| 1| 1|
| 1| 2|
| 1| 3|
+--+--------+ + Expands each value into a column, if there are more than one value, multiple rows will be created.
Array keys are ignored, only values are used to create new rows.
Nested in another function (structure(), concat(), ...) it still gives one row per element. Several
expands in one expression are zipped to the longest list; a shorter one gives null, so its element
type becomes nullable. It is refused inside another array_expand() and in filter(), until(),
duplicateRow(), aggregate(), over() and onEach().
Before:
+--+-------------------+
|id| array|
+--+-------------------+
| 1|{\"a\":1,\"b\":2,\"c\":3}|
+--+-------------------+
After:
+--+--------+
|id|expanded|
+--+--------+
| 1| 1|
| 1| 2|
| 1| 3|
+--+--------+
` return div @@ -721,7 +721,7 @@ const dslFunctions = [ array_unpack(ScalarFunction|array $array, Schema $schema) : ArrayUnpack
- Unpacks each element of an array into a new entry, using the array key as the entry name.
Before:
+--+-------------------+
|id| array|
+--+-------------------+
| 1|{\"a\":1,\"b\":2,\"c\":3}|
| 2|{\"d\":4,\"e\":5,\"f\":6}|
+--+-------------------+
After:
+--+-----+-----+-----+-----+-----+
|id|arr.b|arr.c|arr.d|arr.e|arr.f|
+--+-----+-----+-----+-----+-----+
| 1| 2| 3| | | |
| 2| | | 4| 5| 6|
+--+-----+-----+-----+-----+-----+
@param array|ScalarFunction $array + Unpacks each element of an array into a new column, using the array key as the column name.
Before:
+--+-------------------+
|id| array|
+--+-------------------+
| 1|{\"a\":1,\"b\":2,\"c\":3}|
| 2|{\"d\":4,\"e\":5,\"f\":6}|
+--+-------------------+
After:
+--+-----+-----+-----+-----+-----+
|id|arr.b|arr.c|arr.d|arr.e|arr.f|
+--+-----+-----+-----+-----+-----+
| 1| 2| 3| | | |
| 2| | | 4| 5| 6|
+--+-----+-----+-----+-----+-----+
@param array|ScalarFunction $array
` return div @@ -1600,7 +1600,7 @@ const dslFunctions = [ const div = document.createElement("div") div.innerHTML = `
- col(string $entry) : UnresolvedReference + col(string $column) : UnresolvedReference
An alias for \`ref\`. @@ -1608,7 +1608,7 @@ const dslFunctions = [ ` return div }, - apply: snippet("\\Flow\\ETL\\DSL\\col(" + "$" + "{" + "1:entry" + "}" + ")"), + apply: snippet("\\Flow\\ETL\\DSL\\col(" + "$" + "{" + "1:column" + "}" + ")"), boost: 10 }, { label: "col", @@ -3322,12 +3322,12 @@ const dslFunctions = [ const div = document.createElement("div") div.innerHTML = `
- drop(Reference|string $entries) : Drop + drop(Reference|string $columns) : Drop
` return div }, - apply: snippet("\\Flow\\ETL\\DSL\\drop(" + "$" + "{" + "1:entries" + "}" + ")"), + apply: snippet("\\Flow\\ETL\\DSL\\drop(" + "$" + "{" + "1:columns" + "}" + ")"), boost: 10 }, { label: "drop", @@ -3401,24 +3401,6 @@ const dslFunctions = [ }, apply: snippet("\\Flow\\Telemetry\\DSL\\enriching_log_middleware(" + "$" + "{" + "1:attributes" + "}" + ")"), boost: 10 - }, { - label: "entry", - type: "function", - detail: "flow\u002Ddsl\u002Dscalar\u002Dfunctions", - info: () => { - const div = document.createElement("div") - div.innerHTML = ` -
- entry(string $entry) : UnresolvedReference -
-
- An alias for \`ref\`. -
- ` - return div - }, - apply: snippet("\\Flow\\ETL\\DSL\\entry(" + "$" + "{" + "1:entry" + "}" + ")"), - boost: 10 }, { label: "enum_name", type: "function", @@ -4540,12 +4522,12 @@ const dslFunctions = [ const div = document.createElement("div") div.innerHTML = `
- from_sequence_date_period(string $entry_name, DateTimeInterface $start, DateInterval $interval, DateTimeInterface $end, int $options = 0) : SequenceExtractor + from_sequence_date_period(string $column_name, DateTimeInterface $start, DateInterval $interval, DateTimeInterface $end, int $options = 0) : SequenceExtractor
` return div }, - apply: snippet("\\Flow\\ETL\\DSL\\from_sequence_date_period(" + "$" + "{" + "1:entry_name" + "}" + ", " + "$" + "{" + "2:start" + "}" + ", " + "$" + "{" + "3:interval" + "}" + ", " + "$" + "{" + "4:end" + "}" + ", " + "$" + "{" + "5:options" + "}" + ")"), + apply: snippet("\\Flow\\ETL\\DSL\\from_sequence_date_period(" + "$" + "{" + "1:column_name" + "}" + ", " + "$" + "{" + "2:start" + "}" + ", " + "$" + "{" + "3:interval" + "}" + ", " + "$" + "{" + "4:end" + "}" + ", " + "$" + "{" + "5:options" + "}" + ")"), boost: 10 }, { label: "from_sequence_date_period_recurrences", @@ -4555,12 +4537,12 @@ const dslFunctions = [ const div = document.createElement("div") div.innerHTML = `
- from_sequence_date_period_recurrences(string $entry_name, DateTimeInterface $start, DateInterval $interval, int $recurrences, int $options = 0) : SequenceExtractor + from_sequence_date_period_recurrences(string $column_name, DateTimeInterface $start, DateInterval $interval, int $recurrences, int $options = 0) : SequenceExtractor
` return div }, - apply: snippet("\\Flow\\ETL\\DSL\\from_sequence_date_period_recurrences(" + "$" + "{" + "1:entry_name" + "}" + ", " + "$" + "{" + "2:start" + "}" + ", " + "$" + "{" + "3:interval" + "}" + ", " + "$" + "{" + "4:recurrences" + "}" + ", " + "$" + "{" + "5:options" + "}" + ")"), + apply: snippet("\\Flow\\ETL\\DSL\\from_sequence_date_period_recurrences(" + "$" + "{" + "1:column_name" + "}" + ", " + "$" + "{" + "2:start" + "}" + ", " + "$" + "{" + "3:interval" + "}" + ", " + "$" + "{" + "4:recurrences" + "}" + ", " + "$" + "{" + "5:options" + "}" + ")"), boost: 10 }, { label: "from_sequence_number", @@ -4570,12 +4552,12 @@ const dslFunctions = [ const div = document.createElement("div") div.innerHTML = `
- from_sequence_number(string $entry_name, string|int|float $start, string|int|float $end, int|float $step = 1) : SequenceExtractor + from_sequence_number(string $column_name, string|int|float $start, string|int|float $end, int|float $step = 1) : SequenceExtractor
` return div }, - apply: snippet("\\Flow\\ETL\\DSL\\from_sequence_number(" + "$" + "{" + "1:entry_name" + "}" + ", " + "$" + "{" + "2:start" + "}" + ", " + "$" + "{" + "3:end" + "}" + ", " + "$" + "{" + "4:step" + "}" + ")"), + apply: snippet("\\Flow\\ETL\\DSL\\from_sequence_number(" + "$" + "{" + "1:column_name" + "}" + ", " + "$" + "{" + "2:start" + "}" + ", " + "$" + "{" + "3:end" + "}" + ", " + "$" + "{" + "4:step" + "}" + ")"), boost: 10 }, { label: "from_static_http_requests", @@ -5935,12 +5917,12 @@ const dslFunctions = [ const div = document.createElement("div") div.innerHTML = `
- list_ref(string $entry) : ListFunctions + list_ref(string $column) : ListFunctions
` return div }, - apply: snippet("\\Flow\\ETL\\DSL\\list_ref(" + "$" + "{" + "1:entry" + "}" + ")"), + apply: snippet("\\Flow\\ETL\\DSL\\list_ref(" + "$" + "{" + "1:column" + "}" + ")"), boost: 10 }, { label: "list_schema", @@ -7303,12 +7285,12 @@ const dslFunctions = [ const div = document.createElement("div") div.innerHTML = `
- partition_by(Reference|string $entry, Reference|string $entries) : Partitioning + partition_by(Reference|string $column, Reference|string $columns) : Partitioning
` return div }, - apply: snippet("\\Flow\\ETL\\DSL\\partition_by(" + "$" + "{" + "1:entry" + "}" + ", " + "$" + "{" + "2:entries" + "}" + ")"), + apply: snippet("\\Flow\\ETL\\DSL\\partition_by(" + "$" + "{" + "1:column" + "}" + ", " + "$" + "{" + "2:columns" + "}" + ")"), boost: 10 }, { label: "partition_types", @@ -7579,7 +7561,7 @@ const dslFunctions = [ const div = document.createElement("div") div.innerHTML = `
- pgsql_schema_sort_by_type(EntryTypesMap $typesMap = null) : TypeStrategy + pgsql_schema_sort_by_type(TypesMap $typesMap = null) : TypeStrategy
` return div @@ -7594,7 +7576,7 @@ const dslFunctions = [ const div = document.createElement("div") div.innerHTML = `
- pgsql_table_to_flow_schema(Table $table, EntryTypesMap $typesMap = null) : Schema + pgsql_table_to_flow_schema(Table $table, TypesMap $typesMap = null) : Schema
Convert a PostgreSQL table definition into a Flow Schema. @@ -7903,12 +7885,12 @@ const dslFunctions = [ const div = document.createElement("div") div.innerHTML = `
- psr18_traceable_client(ClientInterface $client, Telemetry $telemetry) : PSR18TraceableClient + psr18_traceable_client(ClientInterface $client, Telemetry $telemetry, UrlSanitizer $urlSanitizer = Flow\\Telemetry\\Sanitizer\\UrlSanitizer::...) : PSR18TraceableClient
` return div }, - apply: snippet("\\Flow\\Bridge\\Psr18\\Telemetry\\DSL\\psr18_traceable_client(" + "$" + "{" + "1:client" + "}" + ", " + "$" + "{" + "2:telemetry" + "}" + ")"), + apply: snippet("\\Flow\\Bridge\\Psr18\\Telemetry\\DSL\\psr18_traceable_client(" + "$" + "{" + "1:client" + "}" + ", " + "$" + "{" + "2:telemetry" + "}" + ", " + "$" + "{" + "3:urlSanitizer" + "}" + ")"), boost: 10 }, { label: "random_string", @@ -7966,12 +7948,12 @@ const dslFunctions = [ const div = document.createElement("div") div.innerHTML = `
- ref(string $entry) : UnresolvedReference + ref(string $column) : UnresolvedReference
` return div }, - apply: snippet("\\Flow\\ETL\\DSL\\ref(" + "$" + "{" + "1:entry" + "}" + ")"), + apply: snippet("\\Flow\\ETL\\DSL\\ref(" + "$" + "{" + "1:column" + "}" + ")"), boost: 10 }, { label: "refresh_materialized_view", @@ -7999,12 +7981,12 @@ const dslFunctions = [ const div = document.createElement("div") div.innerHTML = `
- refs(Reference|string $entries) : References + refs(Reference|string $columns) : References
` return div }, - apply: snippet("\\Flow\\ETL\\DSL\\refs(" + "$" + "{" + "1:entries" + "}" + ")"), + apply: snippet("\\Flow\\ETL\\DSL\\refs(" + "$" + "{" + "1:columns" + "}" + ")"), boost: 10 }, { label: "ref_action_cascade", @@ -8305,7 +8287,7 @@ const dslFunctions = [ const div = document.createElement("div") div.innerHTML = `
- rename_map(array $renames) : RenameMapEntryStrategy + rename_map(array $renames) : RenameMapColumnStrategy
@param array $renames Map of old_name => new_name @@ -8323,7 +8305,7 @@ const dslFunctions = [ const div = document.createElement("div") div.innerHTML = `
- rename_replace(array|string $search, array|string $replace) : RenameReplaceEntryStrategy + rename_replace(array|string $search, array|string $replace) : RenameReplaceColumnStrategy
@param array|string $search
@param array|string $replace @@ -8341,7 +8323,7 @@ const dslFunctions = [ const div = document.createElement("div") div.innerHTML = `
- rename_style(StringStyles $style) : RenameCaseEntryStrategy + rename_style(StringStyles $style) : RenameCaseColumnStrategy
` return div @@ -9673,12 +9655,12 @@ const dslFunctions = [ const div = document.createElement("div") div.innerHTML = `
- select(Reference|string $entries) : Select + select(Reference|string $columns) : Select
` return div }, - apply: snippet("\\Flow\\ETL\\DSL\\select(" + "$" + "{" + "1:entries" + "}" + ")"), + apply: snippet("\\Flow\\ETL\\DSL\\select(" + "$" + "{" + "1:columns" + "}" + ")"), boost: 10 }, { label: "select", @@ -10681,12 +10663,12 @@ const dslFunctions = [ const div = document.createElement("div") div.innerHTML = `
- structure_ref(string $entry) : StructureFunctions + structure_ref(string $column) : StructureFunctions
` return div }, - apply: snippet("\\Flow\\ETL\\DSL\\structure_ref(" + "$" + "{" + "1:entry" + "}" + ")"), + apply: snippet("\\Flow\\ETL\\DSL\\structure_ref(" + "$" + "{" + "1:column" + "}" + ")"), boost: 10 }, { label: "structure_schema", @@ -11353,7 +11335,7 @@ const dslFunctions = [ const div = document.createElement("div") div.innerHTML = `
- to_pgsql_schema_table(Schema $schema, string $tableName, string $databaseSchema = 'public', EntryTypesMap $typesMap = null, TableOptions $options = null) : Table + to_pgsql_schema_table(Schema $schema, string $tableName, string $databaseSchema = 'public', TypesMap $typesMap = null, TableOptions $options = null) : Table
Convert a Flow Schema into a PostgreSQL table definition.
@param string $databaseSchema PostgreSQL schema (namespace) the table belongs to
@param ?TableOptions $options table-level options the Flow Schema cannot express (e.g. UNLOGGED) @@ -12578,6 +12560,24 @@ const dslFunctions = [ }, apply: snippet("\\Flow\\ETL\\DSL\\upper(" + "$" + "{" + "1:value" + "}" + ")"), boost: 10 + }, { + label: "url_sanitizer", + type: "function", + detail: "flow\u002Ddsl\u002Dhelpers", + info: () => { + const div = document.createElement("div") + div.innerHTML = ` +
+ url_sanitizer(array $sensitiveQueryParameters = [...]) : UrlSanitizer +
+
+ Create a UrlSanitizer. The given list replaces the OpenTelemetry semantic-convention default list.
@param list $sensitiveQueryParameters Case-sensitive query parameter keys whose values are replaced with REDACTED +
+ ` + return div + }, + apply: snippet("\\Flow\\Telemetry\\DSL\\url_sanitizer(" + "$" + "{" + "1:sensitiveQueryParameters" + "}" + ")"), + boost: 10 }, { label: "uuid_schema", type: "function", @@ -13626,19 +13626,19 @@ const dslFunctions = [ apply: snippet("\\Flow\\PostgreSql\\DSL\\with(" + "$" + "{" + "1:ctes" + "}" + ")"), boost: 10 }, { - label: "with_entry", + label: "with_column", type: "function", detail: "flow\u002Ddsl\u002Dhelpers", info: () => { const div = document.createElement("div") div.innerHTML = `
- with_entry(string $name, ScalarFunction $function) : WithEntry + with_column(string $name, ScalarFunction $function) : WithColumn
` return div }, - apply: snippet("\\Flow\\ETL\\DSL\\with_entry(" + "$" + "{" + "1:name" + "}" + ", " + "$" + "{" + "2:function" + "}" + ")"), + apply: snippet("\\Flow\\ETL\\DSL\\with_column(" + "$" + "{" + "1:name" + "}" + ", " + "$" + "{" + "2:function" + "}" + ")"), boost: 10 }, { label: "xml_element_schema", diff --git a/web/landing/assets/codemirror/completions/scalarfunctionchain.js b/web/landing/assets/codemirror/completions/scalarfunctionchain.js index 745e7b229d..6c259da1f1 100644 --- a/web/landing/assets/codemirror/completions/scalarfunctionchain.js +++ b/web/landing/assets/codemirror/completions/scalarfunctionchain.js @@ -2,7 +2,7 @@ * CodeMirror Completer for Flow PHP ScalarFunctionChain Methods * * ScalarFunctionChain methods: 128 - * ScalarFunctionChain-returning functions: 59 + * ScalarFunctionChain-returning functions: 58 * * This completer triggers after ScalarFunctionChain-returning DSL functions */ @@ -11,7 +11,7 @@ import { CompletionContext, snippet } from "@codemirror/autocomplete" // DSL functions that return ScalarFunctionChain (have scalar_function_chain: true) const scalarFunctionChainFunctions = [ - "col", "entry", "ref", "structure", "optional", "lit", "exists", "when", "structure_get", "array_get", "structure_get_collection", "array_get_collection", "structure_get_collection_first", "array_get_collection_first", "array_exists", "array_merge", "array_merge_collection", "array_key_rename", "array_keys_style_convert", "array_sort", "array_reverse", "now", "between", "to_date_time", "to_date", "date_time_format", "split", "combine", "concat", "concat_ws", "hash", "cast", "coalesce", "enum_name", "enum_value", "call", "array_unpack", "array_expand", "size", "uuid_v4", "uuid_v7", "ulid", "lower", "capitalize", "upper", "not", "to_timezone", "regex_replace", "regex_match_all", "regex_match", "regex", "regex_all", "sprintf", "sanitize", "round", "number_format", "greatest", "least", "match_cases"] + "col", "ref", "structure", "optional", "lit", "exists", "when", "structure_get", "array_get", "structure_get_collection", "array_get_collection", "structure_get_collection_first", "array_get_collection_first", "array_exists", "array_merge", "array_merge_collection", "array_key_rename", "array_keys_style_convert", "array_sort", "array_reverse", "now", "between", "to_date_time", "to_date", "date_time_format", "split", "combine", "concat", "concat_ws", "hash", "cast", "coalesce", "enum_name", "enum_value", "call", "array_unpack", "array_expand", "size", "uuid_v4", "uuid_v7", "ulid", "lower", "capitalize", "upper", "not", "to_timezone", "regex_replace", "regex_match_all", "regex_match", "regex", "regex_all", "sprintf", "sanitize", "round", "number_format", "greatest", "least", "match_cases"] // ScalarFunctionChain methods const scalarFunctionChainMethods = [ @@ -728,7 +728,7 @@ const scalarFunctionChainMethods = [ expand(ArrayExpand $expand = Flow\\ETL\\Function\\ArrayExpand\\ArrayExpand::...) : ArrayExpand
- Expands each value into entry, if there are more than one value, multiple rows will be created.
Array keys are ignored, only values are used to create new rows.
Nested in another function (structure(), concat(), ...) it still gives one row per element. Several
expands in one expression are zipped to the longest list; a shorter one gives null, so its element
type becomes nullable. It is refused inside another array_expand() and in filter(), until(),
duplicateRow(), aggregate(), over() and onEach().
Before:
+--+-------------------+
|id| array|
+--+-------------------+
| 1|{\"a\":1,\"b\":2,\"c\":3}|
+--+-------------------+
After:
+--+--------+
|id|expanded|
+--+--------+
| 1| 1|
| 1| 2|
| 1| 3|
+--+--------+ + Expands each value into a column, if there are more than one value, multiple rows will be created.
Array keys are ignored, only values are used to create new rows.
Nested in another function (structure(), concat(), ...) it still gives one row per element. Several
expands in one expression are zipped to the longest list; a shorter one gives null, so its element
type becomes nullable. It is refused inside another array_expand() and in filter(), until(),
duplicateRow(), aggregate(), over() and onEach().
Before:
+--+-------------------+
|id| array|
+--+-------------------+
| 1|{\"a\":1,\"b\":2,\"c\":3}|
+--+-------------------+
After:
+--+--------+
|id|expanded|
+--+--------+
| 1| 1|
| 1| 2|
| 1| 3|
+--+--------+
` return div @@ -1241,7 +1241,7 @@ const scalarFunctionChainMethods = [ onEach(ScalarFunction $function, bool $preserveKeys = true) : OnEach
- Execute a scalar function on each element of an array/list/map/structure entry.
In order to use this function, you need to provide a reference to the \"element\" that will be used in the function.
Example: $df->withEntry(\'array\', ref(\'array\')->onEach(ref(\'element\')->cast(type_string()))) + Execute a scalar function on each element of an array/list/map/structure column.
In order to use this function, you need to provide a reference to the \"element\" that will be used in the function.
Example: $df->withColumn(\'array\', ref(\'array\')->onEach(ref(\'element\')->cast(type_string())))
` return div @@ -1940,7 +1940,7 @@ const scalarFunctionChainMethods = [ unpack(Schema $schema) : ArrayUnpack
- Unpacks each element of an array into a new entry, using the array key as the entry name.
Before:
+--+-------------------+
|id| array|
+--+-------------------+
| 1|{\"a\":1,\"b\":2,\"c\":3}|
| 2|{\"d\":4,\"e\":5,\"f\":6}|
+--+-------------------+
After:
+--+-----+-----+-----+-----+-----+
|id|arr.b|arr.c|arr.d|arr.e|arr.f|
+--+-----+-----+-----+-----+-----+
| 1| 2| 3| | | |
| 2| | | 4| 5| 6|
+--+-----+-----+-----+-----+-----+ + Unpacks each element of an array into a new column, using the array key as the column name.
Before:
+--+-------------------+
|id| array|
+--+-------------------+
| 1|{\"a\":1,\"b\":2,\"c\":3}|
| 2|{\"d\":4,\"e\":5,\"f\":6}|
+--+-------------------+
After:
+--+-----+-----+-----+-----+-----+
|id|arr.b|arr.c|arr.d|arr.e|arr.f|
+--+-----+-----+-----+-----+-----+
| 1| 2| 3| | | |
| 2| | | 4| 5| 6|
+--+-----+-----+-----+-----+-----+
` return div diff --git a/web/landing/assets/wasm/tools/flow.phar b/web/landing/assets/wasm/tools/flow.phar index 4a8f24fd1c3c3bcd9d11549dda3480caca58c5af..b9f6a505c2dd24658e84484150d25e356aadb776 100755 GIT binary patch delta 330453 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

(hH_K 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

(j%RasPojIWQ*x(qTJ2o^1++QDgi{Mb` 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 diff --git a/web/landing/content/examples/topics/batching/column_backend/code.php b/web/landing/content/examples/topics/batching/column_backend/code.php index 08fe170aba..8d588cb403 100644 --- a/web/landing/content/examples/topics/batching/column_backend/code.php +++ b/web/landing/content/examples/topics/batching/column_backend/code.php @@ -10,7 +10,7 @@ $rows = data_frame(config_builder()->backend(new PhpBackend())) ->read(from_array([['id' => 1], ['id' => 2], ['id' => 3]])) - ->withEntry('double', ref('id')->multiply(lit(2))) + ->withColumn('double', ref('id')->multiply(lit(2))) ->fetch(); foreach (['id', 'double'] as $name) { diff --git a/web/landing/content/examples/topics/caching/cache/code.php b/web/landing/content/examples/topics/caching/cache/code.php index 50d07112fe..408cbb8626 100644 --- a/web/landing/content/examples/topics/caching/cache/code.php +++ b/web/landing/content/examples/topics/caching/cache/code.php @@ -38,9 +38,9 @@ public function create(?ResponseInterface $previousResponse = null) : ?RequestIn ) ) ->cache('github_api') - ->withEntry('unpacked', ref('response_body')->jsonDecode()) + ->withColumn('unpacked', ref('response_body')->jsonDecode()) ->select('unpacked') - ->withEntry('unpacked', ref('unpacked')->unpack(schema( + ->withColumn('unpacked', ref('unpacked')->unpack(schema( str_schema('name'), str_schema('html_url'), str_schema('blog'), diff --git a/web/landing/content/examples/topics/columns/create/code.php b/web/landing/content/examples/topics/columns/create/code.php index b4dec57372..a7a41a075e 100644 --- a/web/landing/content/examples/topics/columns/create/code.php +++ b/web/landing/content/examples/topics/columns/create/code.php @@ -12,8 +12,8 @@ ['id' => 2, 'name' => 'John'], ['id' => 3, 'name' => 'Jane'], ])) - ->withEntry('active', ref('id')->isOdd()) - ->withEntry('number', lit(5)) + ->withColumn('active', ref('id')->isOdd()) + ->withColumn('number', lit(5)) ->collect() ->write(to_output(truncate: false)) ->run(); diff --git a/web/landing/content/examples/topics/columns/create/description.md b/web/landing/content/examples/topics/columns/create/description.md index 1acd9a47f9..ce31ac828d 100644 --- a/web/landing/content/examples/topics/columns/create/description.md +++ b/web/landing/content/examples/topics/columns/create/description.md @@ -1,2 +1,2 @@ -`withEntry()` adds a column, or replaces one with the same name. The value is any expression: +`withColumn()` adds a column, or replaces one with the same name. The value is any expression: computed from other columns (`ref('id')->isOdd()`) or a constant (`lit(5)`). diff --git a/web/landing/content/examples/topics/errors/ignore/code.php b/web/landing/content/examples/topics/errors/ignore/code.php index 731c00d396..7e0a34b79a 100644 --- a/web/landing/content/examples/topics/errors/ignore/code.php +++ b/web/landing/content/examples/topics/errors/ignore/code.php @@ -16,7 +16,7 @@ ], schema(int_schema('id'), int_schema('divisor')))) ->batchSize(1) ->onError(ignore_error_handler()) - ->withEntry('result', lit(100)->divide(ref('divisor'))) + ->withColumn('result', lit(100)->divide(ref('divisor'))) ->collect() ->write(to_output(truncate: false)) ->run(); diff --git a/web/landing/content/examples/topics/errors/skip_rows/code.php b/web/landing/content/examples/topics/errors/skip_rows/code.php index ef0e7bf621..a2c7bbf337 100644 --- a/web/landing/content/examples/topics/errors/skip_rows/code.php +++ b/web/landing/content/examples/topics/errors/skip_rows/code.php @@ -17,7 +17,7 @@ ], schema(int_schema('id'), int_schema('divisor')))) ->batchSize(2) ->onError(skip_rows_handler()) - ->withEntry('result', lit(100)->divide(ref('divisor'))) + ->withColumn('result', lit(100)->divide(ref('divisor'))) ->collect() ->write(to_output(truncate: false)) ->run(); diff --git a/web/landing/content/examples/topics/errors/throw/code.php b/web/landing/content/examples/topics/errors/throw/code.php index e9fb2b5748..fe44d92bea 100644 --- a/web/landing/content/examples/topics/errors/throw/code.php +++ b/web/landing/content/examples/topics/errors/throw/code.php @@ -14,7 +14,7 @@ ['id' => 2, 'divisor' => 0], ], schema(int_schema('id'), int_schema('divisor')))) ->onError(throw_error_handler()) - ->withEntry('result', lit(100)->divide(ref('divisor'))) + ->withColumn('result', lit(100)->divide(ref('divisor'))) ->collect() ->write(to_output(truncate: false)) ->run(); diff --git a/web/landing/content/examples/topics/filesystem/s3/code.php b/web/landing/content/examples/topics/filesystem/s3/code.php index 877985f243..4880fd4002 100644 --- a/web/landing/content/examples/topics/filesystem/s3/code.php +++ b/web/landing/content/examples/topics/filesystem/s3/code.php @@ -57,7 +57,7 @@ ->write(to_csv(path('aws-s3://test.csv'), filesystem: $s3)->saveMode(overwrite())) ->write(to_xml(path('aws-s3://test.xml'), filesystem: $s3)->saveMode(overwrite())) ->write(to_json(path('aws-s3://test.json'), filesystem: $s3)->saveMode(overwrite())) - ->withEntry('line', ref('id')->concat(lit('_'), ref('name'))) + ->withColumn('line', ref('id')->concat(lit('_'), ref('name'))) ->drop('id', 'name') ->write(to_text(path('aws-s3://test.txt'), filesystem: $s3)->saveMode(overwrite())) ->run(); diff --git a/web/landing/content/examples/topics/getting_started/04_schema_before_running/code.php b/web/landing/content/examples/topics/getting_started/04_schema_before_running/code.php index f166d250bf..f6204c5c50 100644 --- a/web/landing/content/examples/topics/getting_started/04_schema_before_running/code.php +++ b/web/landing/content/examples/topics/getting_started/04_schema_before_running/code.php @@ -12,7 +12,7 @@ ['id' => 2, 'name' => 'Jane'], ], schema(int_schema('id'), str_schema('name')))) ->filter(ref('id')->greaterThan(lit(1))) - ->withEntry('greeting', ref('name')->concat(lit('!'))); + ->withColumn('greeting', ref('name')->concat(lit('!'))); // answered from the plan: not one row has been read echo schema_to_ascii($frame->schema()); diff --git a/web/landing/content/examples/topics/partitioning/path_partitions/code.php b/web/landing/content/examples/topics/partitioning/path_partitions/code.php index de5790e199..f5d4539eb1 100644 --- a/web/landing/content/examples/topics/partitioning/path_partitions/code.php +++ b/web/landing/content/examples/topics/partitioning/path_partitions/code.php @@ -8,7 +8,7 @@ data_frame() ->read(from_path_partitions(__DIR__ . '/data/partitioned/color=*/sku=*/*.csv')) - ->withEntry('path', ref('path')->strReplace(__DIR__, '/__ABSOLUTE_PATH__')) + ->withColumn('path', ref('path')->strReplace(__DIR__, '/__ABSOLUTE_PATH__')) ->collect() ->write(to_output(truncate: false)) ->run(); diff --git a/web/landing/content/examples/topics/reading/data_frame/code.php b/web/landing/content/examples/topics/reading/data_frame/code.php index b437cf6341..345a1eedd1 100644 --- a/web/landing/content/examples/topics/reading/data_frame/code.php +++ b/web/landing/content/examples/topics/reading/data_frame/code.php @@ -19,7 +19,7 @@ ['id' => 5], ] )) - ->withEntry('timestamp', ref('id')->multiply(lit(10000))) + ->withColumn('timestamp', ref('id')->multiply(lit(10000))) ) ) ->collect() diff --git a/web/landing/content/examples/topics/reading/http/code.php b/web/landing/content/examples/topics/reading/http/code.php index 3d75e39775..354d0585ec 100644 --- a/web/landing/content/examples/topics/reading/http/code.php +++ b/web/landing/content/examples/topics/reading/http/code.php @@ -45,11 +45,11 @@ ), )) // response_body is declared as a string, so its shape must be declared before it can be indexed - ->withEntry('body', ref('response_body')->jsonDecode()->unpack(schema( + ->withColumn('body', ref('response_body')->jsonDecode()->unpack(schema( list_schema('items', type_list($product)), ))) - ->withEntry('product', ref('body.items')->expand()) - ->withEntry('product', ref('product')->unpack(schema( + ->withColumn('product', ref('body.items')->expand()) + ->withColumn('product', ref('product')->unpack(schema( int_schema('id'), str_schema('name'), str_schema('category'), diff --git a/web/landing/content/examples/topics/reading/xml/code.php b/web/landing/content/examples/topics/reading/xml/code.php index fa570735b7..69e989432c 100644 --- a/web/landing/content/examples/topics/reading/xml/code.php +++ b/web/landing/content/examples/topics/reading/xml/code.php @@ -12,9 +12,9 @@ from_xml(__DIR__ . '/data/orders.xml') ->withXMLNodePath('rows/row') ) - ->withEntry('id', ref('node')->xpath('order_id')->domElementValue()) - ->withEntry('created_at', ref('node')->xpath('created_at')->domElementValue()) - ->withEntry('discount', ref('node')->xpath('discount')->domElementValue()) + ->withColumn('id', ref('node')->xpath('order_id')->domElementValue()) + ->withColumn('created_at', ref('node')->xpath('created_at')->domElementValue()) + ->withColumn('discount', ref('node')->xpath('discount')->domElementValue()) ->drop('node') ->limit(3) ->collect() diff --git a/web/landing/content/examples/topics/transformations/array/expand/code.php b/web/landing/content/examples/topics/transformations/array/expand/code.php index 912bff89a7..e0ae106ac5 100644 --- a/web/landing/content/examples/topics/transformations/array/expand/code.php +++ b/web/landing/content/examples/topics/transformations/array/expand/code.php @@ -13,7 +13,7 @@ // array_expand() derives its own type from the element type, so a bare json column is not enough schema(int_schema('id'), map_schema('array', type_map(type_string(), type_integer()))), )) - ->withEntry('expanded', array_expand(ref('array'))) + ->withColumn('expanded', array_expand(ref('array'))) ->write(to_output(truncate: false)) ->run(); @@ -23,7 +23,7 @@ schema(int_schema('id'), list_schema('tags', type_list(type_string())), list_schema('scores', type_list(type_integer()))), )) // expands in one expression are zipped to the longest list, a shorter one gives null - ->withEntry('pair', structure(['tag' => ref('tags')->expand(), 'score' => ref('scores')->expand()])) + ->withColumn('pair', structure(['tag' => ref('tags')->expand(), 'score' => ref('scores')->expand()])) ->drop('tags', 'scores') ->write(to_output(truncate: false)) ->run(); diff --git a/web/landing/content/examples/topics/transformations/array/unpack/code.php b/web/landing/content/examples/topics/transformations/array/unpack/code.php index f7ed12ebc2..3d7fde9713 100644 --- a/web/landing/content/examples/topics/transformations/array/unpack/code.php +++ b/web/landing/content/examples/topics/transformations/array/unpack/code.php @@ -14,7 +14,7 @@ ], schema(int_schema('id'), json_schema('array')), )) - ->withEntry('unpacked', ref('array')->unpack(schema( + ->withColumn('unpacked', ref('array')->unpack(schema( int_schema('a'), int_schema('b'), int_schema('c'), diff --git a/web/landing/content/examples/topics/transformations/call/code.php b/web/landing/content/examples/topics/transformations/call/code.php index 929c3c2530..d04e8787ec 100644 --- a/web/landing/content/examples/topics/transformations/call/code.php +++ b/web/landing/content/examples/topics/transformations/call/code.php @@ -21,7 +21,7 @@ ] ) ) - ->withEntry( + ->withColumn( 'integers', ref('integers')->call(lit('explode'), type_list(type_integer()), ['separator' => ','], refAlias: 'string') ) diff --git a/web/landing/content/examples/topics/transformations/custom/code.php b/web/landing/content/examples/topics/transformations/custom/code.php index ec8eea315f..dd14beb3e1 100644 --- a/web/landing/content/examples/topics/transformations/custom/code.php +++ b/web/landing/content/examples/topics/transformations/custom/code.php @@ -23,7 +23,7 @@ new class implements Transformation { public function transform(Flow\ETL\DataFrame $dataFrame) : Flow\ETL\DataFrame { - return $dataFrame->withEntry('name', concat_ws(lit(' '), ref('first_name'), ref('last_name'))); + return $dataFrame->withColumn('name', concat_ws(lit(' '), ref('first_name'), ref('last_name'))); } } ) diff --git a/web/landing/content/examples/topics/transformations/filtering/divide/code.php b/web/landing/content/examples/topics/transformations/filtering/divide/code.php index 8815621da4..5def216d54 100644 --- a/web/landing/content/examples/topics/transformations/filtering/divide/code.php +++ b/web/landing/content/examples/topics/transformations/filtering/divide/code.php @@ -12,6 +12,6 @@ schema(int_schema('a'), int_schema('b')), )) ->filter(ref('b')->divide(lit(2))->equals(ref('a'))) - ->withEntry('new_b', ref('b')->multiply(lit(2))->multiply(lit(5))) + ->withColumn('new_b', ref('b')->multiply(lit(2))->multiply(lit(5))) ->write(to_output(truncate: false)) ->run(); diff --git a/web/landing/content/examples/topics/transformations/literals/code.php b/web/landing/content/examples/topics/transformations/literals/code.php index 660fd73c7c..86d2ddd9db 100644 --- a/web/landing/content/examples/topics/transformations/literals/code.php +++ b/web/landing/content/examples/topics/transformations/literals/code.php @@ -11,6 +11,6 @@ [['name' => 'Norbert']], schema(str_schema('name')), )) - ->withEntry('number', lit(1)) + ->withColumn('number', lit(1)) ->write(to_output(truncate: false)) ->run(); diff --git a/web/landing/content/examples/topics/transformations/match/code.php b/web/landing/content/examples/topics/transformations/match/code.php index b35dfa4219..eaef7975e5 100644 --- a/web/landing/content/examples/topics/transformations/match/code.php +++ b/web/landing/content/examples/topics/transformations/match/code.php @@ -28,7 +28,7 @@ ], schema(str_schema('string')), )) - ->withEntry( + ->withColumn( 'string', match_cases( [ diff --git a/web/landing/content/examples/topics/transformations/math/code.php b/web/landing/content/examples/topics/transformations/math/code.php index d8c2ee2395..d53fef71a5 100644 --- a/web/landing/content/examples/topics/transformations/math/code.php +++ b/web/landing/content/examples/topics/transformations/math/code.php @@ -11,6 +11,6 @@ [['a' => 100, 'b' => 200]], schema(int_schema('a'), int_schema('b')), )) - ->withEntry('d', ref('b')->minus(ref('a'))) + ->withColumn('d', ref('b')->minus(ref('a'))) ->write(to_output(truncate: false)) ->run(); diff --git a/web/landing/content/examples/topics/transformations/size/code.php b/web/landing/content/examples/topics/transformations/size/code.php index 642acebe68..3f8fbbf312 100644 --- a/web/landing/content/examples/topics/transformations/size/code.php +++ b/web/landing/content/examples/topics/transformations/size/code.php @@ -12,6 +12,6 @@ [['id' => 1, 'array' => ['a' => 1, 'b' => 2, 'c' => 3]]], schema(int_schema('id'), map_schema('array', type_map(type_string(), type_integer()))), )) - ->withEntry('array_size', ref('array')->size()) + ->withColumn('array_size', ref('array')->size()) ->write(to_output(truncate: false)) ->run(); diff --git a/web/landing/content/examples/topics/transformations/when/basic/code.php b/web/landing/content/examples/topics/transformations/when/basic/code.php index cc8fba0749..dc65548733 100644 --- a/web/landing/content/examples/topics/transformations/when/basic/code.php +++ b/web/landing/content/examples/topics/transformations/when/basic/code.php @@ -13,7 +13,7 @@ ['id' => 3, 'email' => 'user03@flow-php.com', 'active' => true, 'tags' => ['bar', 'baz']], ])) ->collect() - ->withEntry( + ->withColumn( 'is_special', when( ref('active')->isTrue()->and(ref('tags')->contains('foo')), diff --git a/web/landing/content/examples/topics/transformations/when/else_when/code.php b/web/landing/content/examples/topics/transformations/when/else_when/code.php index 31b2d8c9f2..60e01225f9 100644 --- a/web/landing/content/examples/topics/transformations/when/else_when/code.php +++ b/web/landing/content/examples/topics/transformations/when/else_when/code.php @@ -14,7 +14,7 @@ ['id' => 4, 'score' => 30, 'email' => 'user04@flow-php.com'], ])) ->collect() - ->withEntry( + ->withColumn( 'grade', when( ref('score')->greaterThanEqual(lit(90)), diff --git a/web/landing/content/examples/topics/transformations/when/null/code.php b/web/landing/content/examples/topics/transformations/when/null/code.php index 1ebe08992b..1efcc81b17 100644 --- a/web/landing/content/examples/topics/transformations/when/null/code.php +++ b/web/landing/content/examples/topics/transformations/when/null/code.php @@ -17,7 +17,7 @@ ], schema(int_schema('id'), int_schema('value', nullable: true)), )) - ->withEntry( + ->withColumn( 'value', when(ref('value')->isNull(), then: lit(0), else: ref('value')) ) diff --git a/web/landing/content/examples/topics/transformations/when/odd/code.php b/web/landing/content/examples/topics/transformations/when/odd/code.php index c1bec730f9..9ae3151559 100644 --- a/web/landing/content/examples/topics/transformations/when/odd/code.php +++ b/web/landing/content/examples/topics/transformations/when/odd/code.php @@ -9,7 +9,7 @@ data_frame() ->read(from_sequence_number('number', 1, 100)) ->collect() - ->withEntry( + ->withColumn( 'type', when( ref('number')->isOdd(), diff --git a/web/landing/content/examples/topics/window_functions/dense_rank/code.php b/web/landing/content/examples/topics/window_functions/dense_rank/code.php index 3aa2222e05..6db2ae85fa 100644 --- a/web/landing/content/examples/topics/window_functions/dense_rank/code.php +++ b/web/landing/content/examples/topics/window_functions/dense_rank/code.php @@ -18,7 +18,7 @@ ['id' => 7, 'name' => 'Ann', 'department' => 'Finances', 'salary' => 8000], ]) ) - ->withEntry('dense_rank', dense_rank()->over(window()->partitionBy(ref('department'))->orderBy(ref('salary')->desc()))) + ->withColumn('dense_rank', dense_rank()->over(window()->partitionBy(ref('department'))->orderBy(ref('salary')->desc()))) ->sortBy([ref('department'), ref('dense_rank')]) ->collect() ->write(to_output(truncate: false)) diff --git a/web/landing/content/examples/topics/window_functions/frames/code.php b/web/landing/content/examples/topics/window_functions/frames/code.php index 08c3d0a269..2fe9074257 100644 --- a/web/landing/content/examples/topics/window_functions/frames/code.php +++ b/web/landing/content/examples/topics/window_functions/frames/code.php @@ -15,11 +15,11 @@ ['day' => '2024-01-04', 'sales' => 40], ], schema(str_schema('day'), int_schema('sales')))) // everything from the start of the partition up to this row - ->withEntry('running_total', sum(ref('sales'))->over( + ->withColumn('running_total', sum(ref('sales'))->over( window()->orderBy(ref('day'))->rowsBetween(unbounded_preceding(), current_row()), )) // this row and the one before it - ->withEntry('moving_average', average(ref('sales'))->over( + ->withColumn('moving_average', average(ref('sales'))->over( window()->orderBy(ref('day'))->rowsBetween(preceding(1), current_row()), )) ->collect() diff --git a/web/landing/content/examples/topics/window_functions/rank/code.php b/web/landing/content/examples/topics/window_functions/rank/code.php index 1d75277729..ee3410d56e 100644 --- a/web/landing/content/examples/topics/window_functions/rank/code.php +++ b/web/landing/content/examples/topics/window_functions/rank/code.php @@ -18,7 +18,7 @@ ['id' => 7, 'name' => 'Ann', 'department' => 'Finances', 'salary' => 8000], ]) ) - ->withEntry('rank', rank()->over(window()->partitionBy(ref('department'))->orderBy(ref('salary')->desc()))) + ->withColumn('rank', rank()->over(window()->partitionBy(ref('department'))->orderBy(ref('salary')->desc()))) ->sortBy([ref('department'), ref('rank')]) ->collect() ->write(to_output(truncate: false)) diff --git a/web/landing/content/examples/topics/window_functions/row_number/code.php b/web/landing/content/examples/topics/window_functions/row_number/code.php index 55b3b67d30..62b19f2d22 100644 --- a/web/landing/content/examples/topics/window_functions/row_number/code.php +++ b/web/landing/content/examples/topics/window_functions/row_number/code.php @@ -18,7 +18,7 @@ ['id' => 7, 'name' => 'Ann', 'department' => 'Finances', 'salary' => 8000], ]) ) - ->withEntry('row_num', row_number()->over(window()->partitionBy(ref('department'))->orderBy(ref('salary')->desc()))) + ->withColumn('row_num', row_number()->over(window()->partitionBy(ref('department'))->orderBy(ref('salary')->desc()))) ->sortBy([ref('department'), ref('row_num')]) ->collect() ->write(to_output(truncate: false)) diff --git a/web/landing/content/examples/topics/writing/text/code.php b/web/landing/content/examples/topics/writing/text/code.php index baaa04a571..d9a3c50392 100644 --- a/web/landing/content/examples/topics/writing/text/code.php +++ b/web/landing/content/examples/topics/writing/text/code.php @@ -17,7 +17,7 @@ ['id' => 5, 'name' => 'Charlie', 'age' => 32], ]) ) - ->withEntry('line', concat_ws('_', ref('id'), ref('name'), ref('age'))) + ->withColumn('line', concat_ws('_', ref('id'), ref('name'), ref('age'))) ->select('line') ->collect() ->write(to_text(__DIR__ . '/lines.txt')->saveMode(overwrite())) diff --git a/web/landing/resources/api.json b/web/landing/resources/api.json index 46140d0f6a..2e589e9a86 100644 --- a/web/landing/resources/api.json +++ b/web/landing/resources/api.json @@ -1 +1 @@ -[{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":31,"slug":"and","name":"and","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"function","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"All","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":36,"slug":"andnot","name":"andNot","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"function","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"All","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":41,"slug":"append","name":"append","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"suffix","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Append","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":54,"slug":"arrayfilter","name":"arrayFilter","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"value","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ArrayFilter","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBGaWx0ZXJzIGFuIGFycmF5IGJ5IHJlbW92aW5nIGFsbCBlbGVtZW50cyB0aGF0IG1hdGNoZXMgcGFzc2VkIHZhbHVlLgogICAgICogQXBwbGljYWJsZSB0byBhbGwgZGF0YSBzdHJ1Y3R1cmVzIHRoYXQgY2FuIGJlIGNvbnZlcnRlZCB0byBhbiBhcnJheToKICAgICAqICAgIC0ganNvbgogICAgICogICAgLSBsaXN0CiAgICAgKiAgICAtIG1hcAogICAgICogICAgLSBzdHJ1Y3R1cmUuCiAgICAgKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":59,"slug":"arrayget","name":"arrayGet","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"path","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ArrayGet","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":67,"slug":"arraygetcollection","name":"arrayGetCollection","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"keys","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ArrayGetCollection","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBAcGFyYW0gU2NhbGFyRnVuY3Rpb258YXJyYXk8YXJyYXkta2V5LCBtaXhlZD4gJGtleXMKICAgICAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":72,"slug":"arraygetcollectionfirst","name":"arrayGetCollectionFirst","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"keys","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"ArrayGetCollection","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":85,"slug":"arraykeep","name":"arrayKeep","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"value","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ArrayKeep","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBGaWx0ZXJzIGFuIGFycmF5IGJ5IGtlZXBpbmcgb25seSBlbGVtZW50cyB0aGF0IG1hdGNoZXMgcGFzc2VkIHZhbHVlLgogICAgICogQXBwbGljYWJsZSB0byBhbGwgZGF0YSBzdHJ1Y3R1cmVzIHRoYXQgY2FuIGJlIGNvbnZlcnRlZCB0byBhbiBhcnJheToKICAgICAqICAgLSBqc29uCiAgICAgKiAgIC0gbGlzdAogICAgICogICAtIG1hcAogICAgICogICAtIHN0cnVjdHVyZS4KICAgICAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":98,"slug":"arraykeys","name":"arrayKeys","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"ArrayKeys","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBSZXR1cm5zIGFsbCBrZXlzIGZyb20gYW4gYXJyYXksIGlnbm9yaW5nIHRoZSB2YWx1ZXMuCiAgICAgKiBBcHBsaWNhYmxlIHRvIGFsbCBkYXRhIHN0cnVjdHVyZXMgdGhhdCBjYW4gYmUgY29udmVydGVkIHRvIGFuIGFycmF5OgogICAgICogICAtIGpzb24KICAgICAqICAgLSBsaXN0CiAgICAgKiAgIC0gbWFwCiAgICAgKiAgIC0gc3RydWN0dXJlLgogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":106,"slug":"arraymerge","name":"arrayMerge","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"ref","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ArrayMerge","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBAcGFyYW0gU2NhbGFyRnVuY3Rpb258YXJyYXk8YXJyYXkta2V5LCBtaXhlZD4gJHJlZgogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":111,"slug":"arraymergecollection","name":"arrayMergeCollection","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"ArrayMergeCollection","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":116,"slug":"arraypathexists","name":"arrayPathExists","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"path","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ArrayPathExists","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":121,"slug":"arrayreverse","name":"arrayReverse","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"preserveKeys","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"ArrayReverse","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":126,"slug":"arraysort","name":"arraySort","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"sortFunction","type":[{"name":"Sort","namespace":"Flow\\ETL\\Function\\ArraySort","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"flags","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"recursive","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"}],"return_type":[{"name":"ArraySort","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":142,"slug":"arrayvalues","name":"arrayValues","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"ArrayValues","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBSZXR1cm5zIGFsbCB2YWx1ZXMgZnJvbSBhbiBhcnJheSwgaWdub3JpbmcgdGhlIGtleXMuCiAgICAgKiBBcHBsaWNhYmxlIHRvIGFsbCBkYXRhIHN0cnVjdHVyZXMgdGhhdCBjYW4gYmUgY29udmVydGVkIHRvIGFuIGFycmF5OgogICAgICogICAtIGpzb24KICAgICAqICAgLSBsaXN0CiAgICAgKiAgIC0gbWFwCiAgICAgKiAgIC0gc3RydWN0dXJlLgogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":147,"slug":"ascii","name":"ascii","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"Ascii","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":157,"slug":"between","name":"between","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"lowerBoundRef","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null},{"name":"upperBoundRef","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null},{"name":"boundary","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"Boundary","namespace":"Flow\\ETL\\Function\\Between","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Function\\Between\\Boundary::..."}],"return_type":[{"name":"Between","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBAcGFyYW0gbWl4ZWR8U2NhbGFyRnVuY3Rpb24gJGxvd2VyQm91bmRSZWYKICAgICAqIEBwYXJhbSBtaXhlZHxTY2FsYXJGdW5jdGlvbiAkdXBwZXJCb3VuZFJlZgogICAgICogQHBhcmFtIEJvdW5kYXJ5fFNjYWxhckZ1bmN0aW9uICRib3VuZGFyeQogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":165,"slug":"binarylength","name":"binaryLength","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"BinaryLength","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":174,"slug":"call","name":"call","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"callable","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"returnType","type":[{"name":"Type","namespace":"Flow\\Types","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"arguments","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"refAlias","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"0"}],"return_type":[{"name":"CallUserFunc","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBAcGFyYW0gYXJyYXk8YXJyYXkta2V5LCBtaXhlZD4gJGFyZ3VtZW50cwogICAgICogQHBhcmFtIFR5cGU8bWl4ZWQ+ICRyZXR1cm5UeXBlCiAgICAgKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":183,"slug":"capitalize","name":"capitalize","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"Capitalize","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":191,"slug":"cast","name":"cast","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"type","type":[{"name":"Type","namespace":"Flow\\Types","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Cast","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBAcGFyYW0gc3RyaW5nfFR5cGU8bWl4ZWQ+ICR0eXBlCiAgICAgKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":196,"slug":"chunk","name":"chunk","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"size","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Chunk","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":201,"slug":"coalesce","name":"coalesce","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"params","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"Coalesce","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":206,"slug":"codepointlength","name":"codePointLength","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"CodePointLength","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":211,"slug":"collapsewhitespace","name":"collapseWhitespace","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"CollapseWhitespace","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":216,"slug":"concat","name":"concat","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"params","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"Concat","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":221,"slug":"concatwithseparator","name":"concatWithSeparator","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"separator","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"params","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"ConcatWithSeparator","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":228,"slug":"contains","name":"contains","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"needle","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Contains","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":233,"slug":"dateformat","name":"dateFormat","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"format","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'Y-m-d'"}],"return_type":[{"name":"DateTimeFormat","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":238,"slug":"datetimeformat","name":"dateTimeFormat","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"format","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'Y-m-d H:i:s'"}],"return_type":[{"name":"DateTimeFormat","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":243,"slug":"divide","name":"divide","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"value","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"scale","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"rounding","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"Rounding","namespace":"Flow\\Calculator","is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Divide","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":251,"slug":"domelementattributescount","name":"domElementAttributesCount","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"DOMElementAttributesCount","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":256,"slug":"domelementattributevalue","name":"domElementAttributeValue","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"attribute","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"DOMElementAttributeValue","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":261,"slug":"domelementnamespace","name":"domElementNamespace","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"attribute","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"DOMElementNamespaceValue","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":266,"slug":"domelementnextsibling","name":"domElementNextSibling","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"DOMElementNextSibling","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":271,"slug":"domelementparent","name":"domElementParent","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"DOMElementParent","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":276,"slug":"domelementprevioussibling","name":"domElementPreviousSibling","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"DOMElementPreviousSibling","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":281,"slug":"domelementvalue","name":"domElementValue","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"DOMElementValue","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":286,"slug":"endswith","name":"endsWith","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"needle","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"EndsWith","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":291,"slug":"ensureend","name":"ensureEnd","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"suffix","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"EnsureEnd","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":296,"slug":"ensurestart","name":"ensureStart","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"prefix","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"EnsureStart","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":301,"slug":"enumname","name":"enumName","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"EnumName","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":306,"slug":"enumvalue","name":"enumValue","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"EnumValue","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":311,"slug":"equals","name":"equals","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"ref","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Equals","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":316,"slug":"exists","name":"exists","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"Exists","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":345,"slug":"expand","name":"expand","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"expand","type":[{"name":"ArrayExpand","namespace":"Flow\\ETL\\Function\\ArrayExpand","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Function\\ArrayExpand\\ArrayExpand::..."}],"return_type":[{"name":"ArrayExpand","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBFeHBhbmRzIGVhY2ggdmFsdWUgaW50byBlbnRyeSwgaWYgdGhlcmUgYXJlIG1vcmUgdGhhbiBvbmUgdmFsdWUsIG11bHRpcGxlIHJvd3Mgd2lsbCBiZSBjcmVhdGVkLgogICAgICogQXJyYXkga2V5cyBhcmUgaWdub3JlZCwgb25seSB2YWx1ZXMgYXJlIHVzZWQgdG8gY3JlYXRlIG5ldyByb3dzLgogICAgICogTmVzdGVkIGluIGFub3RoZXIgZnVuY3Rpb24gKHN0cnVjdHVyZSgpLCBjb25jYXQoKSwgLi4uKSBpdCBzdGlsbCBnaXZlcyBvbmUgcm93IHBlciBlbGVtZW50LiBTZXZlcmFsCiAgICAgKiBleHBhbmRzIGluIG9uZSBleHByZXNzaW9uIGFyZSB6aXBwZWQgdG8gdGhlIGxvbmdlc3QgbGlzdDsgYSBzaG9ydGVyIG9uZSBnaXZlcyBudWxsLCBzbyBpdHMgZWxlbWVudAogICAgICogdHlwZSBiZWNvbWVzIG51bGxhYmxlLiBJdCBpcyByZWZ1c2VkIGluc2lkZSBhbm90aGVyIGFycmF5X2V4cGFuZCgpIGFuZCBpbiBmaWx0ZXIoKSwgdW50aWwoKSwKICAgICAqIGR1cGxpY2F0ZVJvdygpLCBhZ2dyZWdhdGUoKSwgb3ZlcigpIGFuZCBvbkVhY2goKS4KICAgICAqCiAgICAgKiBCZWZvcmU6CiAgICAgKiAgICstLSstLS0tLS0tLS0tLS0tLS0tLS0tKwogICAgICogICB8aWR8ICAgICAgICAgICAgICBhcnJheXwKICAgICAqICAgKy0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rCiAgICAgKiAgIHwgMXx7ImEiOjEsImIiOjIsImMiOjN9fAogICAgICogICArLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSsKICAgICAqCiAgICAgKiBBZnRlcjoKICAgICAqICAgKy0tKy0tLS0tLS0tKwogICAgICogICB8aWR8ZXhwYW5kZWR8CiAgICAgKiAgICstLSstLS0tLS0tLSsKICAgICAqICAgfCAxfCAgICAgICAxfAogICAgICogICB8IDF8ICAgICAgIDJ8CiAgICAgKiAgIHwgMXwgICAgICAgM3wKICAgICAqICAgKy0tKy0tLS0tLS0tKwogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":350,"slug":"greaterthan","name":"greaterThan","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"ref","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null}],"return_type":[{"name":"GreaterThan","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":355,"slug":"greaterthanequal","name":"greaterThanEqual","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"ref","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null}],"return_type":[{"name":"GreaterThanEqual","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":360,"slug":"hash","name":"hash","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"algorithm","type":[{"name":"Algorithm","namespace":"Flow\\ETL\\Hash","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Hash\\NativePHPHash::..."}],"return_type":[{"name":"Hash","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":365,"slug":"htmlqueryselector","name":"htmlQuerySelector","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"path","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"HTMLQuerySelector","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":370,"slug":"htmlqueryselectorall","name":"htmlQuerySelectorAll","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"path","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"HTMLQuerySelectorAll","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":378,"slug":"indexof","name":"indexOf","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"needle","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"ignoreCase","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"offset","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"0"}],"return_type":[{"name":"IndexOf","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBSZXR1cm5zIHRoZSBpbmRleCBvZiBnaXZlbiAkbmVlZGxlIGluIHN0cmluZy4KICAgICAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":389,"slug":"indexoflast","name":"indexOfLast","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"needle","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"ignoreCase","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"offset","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"0"}],"return_type":[{"name":"IndexOfLast","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBSZXR1cm5zIHRoZSBsYXN0IGluZGV4IG9mIGdpdmVuICRuZWVkbGUgaW4gc3RyaW5nLgogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":397,"slug":"isempty","name":"isEmpty","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"IsEmpty","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":402,"slug":"iseven","name":"isEven","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"Equals","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":407,"slug":"isfalse","name":"isFalse","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"Same","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":415,"slug":"isin","name":"isIn","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"haystack","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"IsIn","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBAcGFyYW0gU2NhbGFyRnVuY3Rpb258YXJyYXk8YXJyYXkta2V5LCBtaXhlZD4gJGhheXN0YWNrCiAgICAgKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":420,"slug":"isnotnull","name":"isNotNull","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"IsNotNull","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":425,"slug":"isnotnumeric","name":"isNotNumeric","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"IsNotNumeric","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":430,"slug":"isnull","name":"isNull","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"IsNull","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":435,"slug":"isnumeric","name":"isNumeric","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"IsNumeric","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":440,"slug":"isodd","name":"isOdd","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"NotEquals","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":445,"slug":"istrue","name":"isTrue","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"Same","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":453,"slug":"istype","name":"isType","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"types","type":[{"name":"Type","namespace":"Flow\\Types","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"IsType","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBAcGFyYW0gc3RyaW5nfFR5cGU8bWl4ZWQ+ICR0eXBlcwogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":465,"slug":"isutf8","name":"isUtf8","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"IsUtf8","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBDaGVjayBzdHJpbmcgaXMgdXRmOCBhbmQgcmV0dXJucyB0cnVlIG9yIGZhbHNlLgogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":470,"slug":"jsondecode","name":"jsonDecode","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"flags","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"4194304"}],"return_type":[{"name":"JsonDecode","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":475,"slug":"jsonencode","name":"jsonEncode","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"flags","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"4194304"}],"return_type":[{"name":"JsonEncode","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":480,"slug":"lessthan","name":"lessThan","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"ref","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null}],"return_type":[{"name":"LessThan","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":485,"slug":"lessthanequal","name":"lessThanEqual","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"ref","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"LessThanEqual","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":490,"slug":"literal","name":"literal","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"value","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Literal","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":495,"slug":"lower","name":"lower","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"ToLower","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":500,"slug":"minus","name":"minus","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"ref","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"exact","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"Minus","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":505,"slug":"mod","name":"mod","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"value","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Mod","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":510,"slug":"modifydatetime","name":"modifyDateTime","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"modifier","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ModifyDateTime","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":515,"slug":"multiply","name":"multiply","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"value","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"exact","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"Multiply","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":520,"slug":"notequals","name":"notEquals","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"value","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null}],"return_type":[{"name":"NotEquals","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":525,"slug":"notsame","name":"notSame","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"value","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null}],"return_type":[{"name":"NotSame","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":530,"slug":"numberformat","name":"numberFormat","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"decimals","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"2"},{"name":"decimalSeparator","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'.'"},{"name":"thousandsSeparator","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"','"}],"return_type":[{"name":"NumberFormat","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":544,"slug":"oneach","name":"onEach","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"function","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"preserveKeys","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"}],"return_type":[{"name":"OnEach","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBFeGVjdXRlIGEgc2NhbGFyIGZ1bmN0aW9uIG9uIGVhY2ggZWxlbWVudCBvZiBhbiBhcnJheS9saXN0L21hcC9zdHJ1Y3R1cmUgZW50cnkuCiAgICAgKiBJbiBvcmRlciB0byB1c2UgdGhpcyBmdW5jdGlvbiwgeW91IG5lZWQgdG8gcHJvdmlkZSBhIHJlZmVyZW5jZSB0byB0aGUgImVsZW1lbnQiIHRoYXQgd2lsbCBiZSB1c2VkIGluIHRoZSBmdW5jdGlvbi4KICAgICAqCiAgICAgKiBFeGFtcGxlOiAkZGYtPndpdGhFbnRyeSgnYXJyYXknLCByZWYoJ2FycmF5JyktPm9uRWFjaChyZWYoJ2VsZW1lbnQnKS0+Y2FzdCh0eXBlX3N0cmluZygpKSkpCiAgICAgKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":549,"slug":"or","name":"or","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"function","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Any","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":554,"slug":"ornot","name":"orNot","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"function","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Any","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":559,"slug":"plus","name":"plus","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"ref","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"exact","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"Plus","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":564,"slug":"power","name":"power","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"value","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"exact","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"Power","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":569,"slug":"prepend","name":"prepend","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"prefix","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Prepend","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":574,"slug":"regex","name":"regex","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"pattern","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"flags","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"0"},{"name":"offset","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"0"}],"return_type":[{"name":"Regex","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":579,"slug":"regexall","name":"regexAll","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"pattern","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"flags","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"0"},{"name":"offset","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"0"}],"return_type":[{"name":"RegexAll","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":584,"slug":"regexmatch","name":"regexMatch","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"pattern","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"flags","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"0"},{"name":"offset","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"0"}],"return_type":[{"name":"RegexMatch","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":592,"slug":"regexmatchall","name":"regexMatchAll","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"pattern","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"flags","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"0"},{"name":"offset","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"0"}],"return_type":[{"name":"RegexMatchAll","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":600,"slug":"regexreplace","name":"regexReplace","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"pattern","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"replacement","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"limit","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"RegexReplace","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":608,"slug":"repeat","name":"repeat","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"times","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Repeat","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":613,"slug":"reverse","name":"reverse","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"Reverse","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":618,"slug":"round","name":"round","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"precision","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"2"},{"name":"mode","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"1"}],"return_type":[{"name":"Round","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":623,"slug":"same","name":"same","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"value","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Same","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":628,"slug":"sanitize","name":"sanitize","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"placeholder","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'*'"},{"name":"skipCharacters","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Sanitize","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":635,"slug":"size","name":"size","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"Size","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":643,"slug":"slug","name":"slug","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"separator","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'-'"},{"name":"locale","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"symbolsMap","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Slug","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBAcGFyYW0gU2NhbGFyRnVuY3Rpb258bnVsbHxhcnJheTxhcnJheS1rZXksIG1peGVkPiAkc3ltYm9sc01hcAogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":651,"slug":"split","name":"split","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"separator","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"limit","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"9223372036854775807"}],"return_type":[{"name":"Split","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":656,"slug":"sprintf","name":"sprintf","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"params","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":true,"default_value":null}],"return_type":[{"name":"Sprintf","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":661,"slug":"startswith","name":"startsWith","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"needle","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"StartsWith","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":669,"slug":"stringafter","name":"stringAfter","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"needle","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"includeNeedle","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"StringAfter","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBSZXR1cm5zIHRoZSBjb250ZW50cyBmb3VuZCBhZnRlciB0aGUgZmlyc3Qgb2NjdXJyZW5jZSBvZiB0aGUgZ2l2ZW4gc3RyaW5nLgogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":677,"slug":"stringafterlast","name":"stringAfterLast","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"needle","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"includeNeedle","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"StringAfterLast","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBSZXR1cm5zIHRoZSBjb250ZW50cyBmb3VuZCBhZnRlciB0aGUgbGFzdCBvY2N1cnJlbmNlIG9mIHRoZSBnaXZlbiBzdHJpbmcuCiAgICAgKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":687,"slug":"stringbefore","name":"stringBefore","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"needle","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"includeNeedle","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"StringBefore","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBSZXR1cm5zIHRoZSBjb250ZW50cyBmb3VuZCBiZWZvcmUgdGhlIGZpcnN0IG9jY3VycmVuY2Ugb2YgdGhlIGdpdmVuIHN0cmluZy4KICAgICAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":697,"slug":"stringbeforelast","name":"stringBeforeLast","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"needle","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"includeNeedle","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"StringBeforeLast","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBSZXR1cm5zIHRoZSBjb250ZW50cyBmb3VuZCBiZWZvcmUgdGhlIGxhc3Qgb2NjdXJyZW5jZSBvZiB0aGUgZ2l2ZW4gc3RyaW5nLgogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":707,"slug":"stringcontainsany","name":"stringContainsAny","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"needles","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"StringContainsAny","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBAcGFyYW0gYXJyYXk8c3RyaW5nPnxTY2FsYXJGdW5jdGlvbiAkbmVlZGxlcwogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":712,"slug":"stringequalsto","name":"stringEqualsTo","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"string","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"StringEqualsTo","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":720,"slug":"stringfold","name":"stringFold","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"StringFold","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBSZXR1cm5zIGEgc3RyaW5nIHRoYXQgeW91IGNhbiB1c2UgaW4gY2FzZS1pbnNlbnNpdGl2ZSBjb21wYXJpc29ucy4KICAgICAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":725,"slug":"stringmatch","name":"stringMatch","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"pattern","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"StringMatch","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":730,"slug":"stringmatchall","name":"stringMatchAll","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"pattern","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"StringMatchAll","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":735,"slug":"stringnormalize","name":"stringNormalize","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"form","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"16"}],"return_type":[{"name":"StringNormalize","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":744,"slug":"stringstyle","name":"stringStyle","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"style","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"StringStyles","namespace":"Flow\\ETL\\String","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"StringStyle","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBDb3ZlcnQgc3RyaW5nIHRvIGEgc3R5bGUgZnJvbSBlbnVtIGxpc3QsIHBhc3NlZCBpbiBwYXJhbWV0ZXIuCiAgICAgKiBDYW4gYmUgc3RyaW5nICJ1cHBlciIgb3IgU3RyaW5nU3R5bGVzOjpVUFBFUiBmb3IgVXBwZXIgKGV4YW1wbGUpLgogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":752,"slug":"stringtitle","name":"stringTitle","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"allWords","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"StringTitle","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBDaGFuZ2VzIGFsbCBncmFwaGVtZXMvY29kZSBwb2ludHMgdG8gInRpdGxlIGNhc2UiLgogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":757,"slug":"stringwidth","name":"stringWidth","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"StringWidth","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":762,"slug":"strpad","name":"strPad","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"length","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"pad_string","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"' '"},{"name":"type","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"1"}],"return_type":[{"name":"StrPad","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":767,"slug":"strpadboth","name":"strPadBoth","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"length","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"pad_string","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"' '"}],"return_type":[{"name":"StrPad","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":772,"slug":"strpadleft","name":"strPadLeft","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"length","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"pad_string","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"' '"}],"return_type":[{"name":"StrPad","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":777,"slug":"strpadright","name":"strPadRight","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"length","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"pad_string","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"' '"}],"return_type":[{"name":"StrPad","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":786,"slug":"strreplace","name":"strReplace","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"search","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"replace","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"StrReplace","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBAcGFyYW0gYXJyYXk8c3RyaW5nPnxTY2FsYXJGdW5jdGlvbnxzdHJpbmcgJHNlYXJjaAogICAgICogQHBhcmFtIGFycmF5PHN0cmluZz58U2NhbGFyRnVuY3Rpb258c3RyaW5nICRyZXBsYWNlCiAgICAgKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":794,"slug":"todate","name":"toDate","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"format","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'Y-m-d\\\\TH:i:sP'"},{"name":"timeZone","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"DateTimeZone","namespace":"","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"DateTimeZone::..."}],"return_type":[{"name":"ToDate","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBAcGFyYW0gU2NhbGFyRnVuY3Rpb258c3RyaW5nICRmb3JtYXQgLSBjdXJyZW50IGZvcm1hdCBvZiB0aGUgZGF0ZSB0aGF0IHdpbGwgYmUgdXNlZCB0byBjcmVhdGUgRGF0ZVRpbWVJbW11dGFibGUgaW5zdGFuY2UKICAgICAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":805,"slug":"todatetime","name":"toDateTime","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"format","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'Y-m-d H:i:s'"},{"name":"timeZone","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"DateTimeZone","namespace":"","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"DateTimeZone::..."}],"return_type":[{"name":"ToDateTime","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBAcGFyYW0gU2NhbGFyRnVuY3Rpb258c3RyaW5nICRmb3JtYXQgLSBjdXJyZW50IGZvcm1hdCBvZiB0aGUgZGF0ZSB0aGF0IHdpbGwgYmUgdXNlZCB0byBjcmVhdGUgRGF0ZVRpbWVJbW11dGFibGUgaW5zdGFuY2UKICAgICAqIEBwYXJhbSBcRGF0ZVRpbWVab25lfFNjYWxhckZ1bmN0aW9uICR0aW1lWm9uZQogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":812,"slug":"trim","name":"trim","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"type","type":[{"name":"Type","namespace":"Flow\\ETL\\Function\\Trim","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Function\\Trim\\Type::..."},{"name":"characters","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"' \\t\\n\\r\\0\u000b'"}],"return_type":[{"name":"Trim","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":817,"slug":"truncate","name":"truncate","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"length","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"ellipsis","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'...'"}],"return_type":[{"name":"Truncate","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":822,"slug":"unicodelength","name":"unicodeLength","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"UnicodeLength","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":846,"slug":"unpack","name":"unpack","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"schema","type":[{"name":"Schema","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ArrayUnpack","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBVbnBhY2tzIGVhY2ggZWxlbWVudCBvZiBhbiBhcnJheSBpbnRvIGEgbmV3IGVudHJ5LCB1c2luZyB0aGUgYXJyYXkga2V5IGFzIHRoZSBlbnRyeSBuYW1lLgogICAgICoKICAgICAqIEJlZm9yZToKICAgICAqICAgKy0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rCiAgICAgKiAgIHxpZHwgICAgICAgICAgICAgIGFycmF5fAogICAgICogICArLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSsKICAgICAqICAgfCAxfHsiYSI6MSwiYiI6MiwiYyI6M318CiAgICAgKiAgIHwgMnx7ImQiOjQsImUiOjUsImYiOjZ9fAogICAgICogICArLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSsKICAgICAqCiAgICAgKiBBZnRlcjoKICAgICAqICAgKy0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKwogICAgICogICB8aWR8YXJyLmJ8YXJyLmN8YXJyLmR8YXJyLmV8YXJyLmZ8CiAgICAgKiAgICstLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSsKICAgICAqICAgfCAxfCAgICAyfCAgICAzfCAgICAgfCAgICAgfCAgICAgfAogICAgICogICB8IDJ8ICAgICB8ICAgICB8ICAgIDR8ICAgIDV8ICAgIDZ8CiAgICAgKiAgICstLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSsKICAgICAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":851,"slug":"upper","name":"upper","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"ToUpper","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":856,"slug":"wordwrap","name":"wordwrap","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"width","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"break","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'\\n'"},{"name":"cut","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"Wordwrap","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":864,"slug":"xpath","name":"xpath","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"string","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"XPath","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ResolvesFromChildren.php","start_line_in_file":12,"slug":"resolved","name":"resolved","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ResolvesFromChildren.php","start_line_in_file":23,"slug":"deterministic","name":"deterministic","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Flow.php","start_line_in_file":23,"slug":"setup","name":"setUp","class":"Flow\\ETL\\Flow","class_slug":"flow","parameters":[{"name":"config","type":[{"name":"ConfigBuilder","namespace":"Flow\\ETL\\Config","is_nullable":false,"is_variadic":false},{"name":"Config","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Flow.php","start_line_in_file":28,"slug":"extract","name":"extract","class":"Flow\\ETL\\Flow","class_slug":"flow","parameters":[{"name":"extractor","type":[{"name":"Extractor","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"DataFrame","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Flow.php","start_line_in_file":33,"slug":"from","name":"from","class":"Flow\\ETL\\Flow","class_slug":"flow","parameters":[{"name":"extractor","type":[{"name":"Extractor","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"DataFrame","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Flow.php","start_line_in_file":38,"slug":"process","name":"process","class":"Flow\\ETL\\Flow","class_slug":"flow","parameters":[{"name":"rows","type":[{"name":"Rows","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"DataFrame","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Flow.php","start_line_in_file":46,"slug":"read","name":"read","class":"Flow\\ETL\\Flow","class_slug":"flow","parameters":[{"name":"extractor","type":[{"name":"Extractor","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"DataFrame","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBBbGlhcyBmb3IgRmxvdzo6ZXh0cmFjdCBmdW5jdGlvbi4KICAgICAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":75,"slug":"aggregate","name":"aggregate","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"aggregations","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"algorithm","type":[{"name":"GroupByAlgorithmBuilder","namespace":"Flow\\ETL\\Config\\Grouping","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAbGF6eQogICAgICoKICAgICAqIEBwYXJhbSBBZ2dyZWdhdGlvbnMgJGFnZ3JlZ2F0aW9ucwogICAgICogQHBhcmFtIG51bGx8R3JvdXBCeUFsZ29yaXRobUJ1aWxkZXIgJGFsZ29yaXRobSBudWxsIGRlZmVycyB0byBjb25maWd1cmF0aW9uOyBhIGJ1aWxkZXIgcGlucyB0aGUKICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGdvcml0aG0gZm9yIHRoaXMgb3BlcmF0aW9uIGFuZCBza2lwcyBhbnkgYXV0b21hdGljIGNob2ljZQogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":99,"slug":"batchby","name":"batchBy","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"column","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"minSize","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBNZXJnZS9TcGxpdCBSb3dzIHlpZWxkZWQgYnkgRXh0cmFjdG9yIGludG8gYmF0Y2hlcyBidXQga2VlcCB0aG9zZSB3aXRoIGNvbW1vbiB2YWx1ZSBpbiBnaXZlbiBjb2x1bW4gdG9nZXRoZXIuCiAgICAgKiBUaGlzIHdvcmtzIHByb3Blcmx5IG9ubHkgb24gc29ydGVkIGRhdGFzZXRzLgogICAgICoKICAgICAqIFdoZW4gbWluU2l6ZSBpcyBub3QgcHJvdmlkZWQsIGJhdGNoZXMgd2lsbCBiZSBjcmVhdGVkIG9ubHkgd2hlbiB0aGVyZSBpcyBhIGNoYW5nZSBpbiB2YWx1ZSBvZiB0aGUgY29sdW1uLgogICAgICogV2hlbiBtaW5TaXplIGlzIHByb3ZpZGVkLCBiYXRjaGVzIHdpbGwgYmUgY3JlYXRlZCBvbmx5IHdoZW4gdGhlcmUgaXMgYSBjaGFuZ2UgaW4gdmFsdWUgb2YgdGhlIGNvbHVtbiBvcgogICAgICogd2hlbiB0aGVyZSBhcmUgYXQgbGVhc3QgbWluU2l6ZSByb3dzIGluIHRoZSBiYXRjaC4KICAgICAqCiAgICAgKiBAcGFyYW0gUmVmZXJlbmNlfHN0cmluZyAkY29sdW1uIC0gY29sdW1uIHRvIGdyb3VwIGJ5IChhbGwgcm93cyB3aXRoIHNhbWUgdmFsdWUgc3RheSB0b2dldGhlcikKICAgICAqIEBwYXJhbSBudWxsfGludDwxLCBtYXg+ICRtaW5TaXplIC0gb3B0aW9uYWwgbWluaW11bSByb3dzIHBlciBiYXRjaCBmb3IgZWZmaWNpZW5jeQogICAgICoKICAgICAqIEBsYXp5CiAgICAgKgogICAgICogQHRocm93cyBJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24KICAgICAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":119,"slug":"batchsize","name":"batchSize","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"size","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBNZXJnZS9TcGxpdCBSb3dzIHlpZWxkZWQgYnkgRXh0cmFjdG9yIGludG8gYmF0Y2hlcyBvZiBnaXZlbiBzaXplLgogICAgICogRm9yIGV4YW1wbGUsIHdoZW4gRXh0cmFjdG9yIGlzIHlpZWxkaW5nIG9uZSByb3cgYXQgdGltZSwgdGhpcyBtZXRob2Qgd2lsbCBtZXJnZSB0aGVtIGludG8gYmF0Y2hlcyBvZiBnaXZlbiBzaXplCiAgICAgKiBiZWZvcmUgcGFzc2luZyB0aGVtIHRvIHRoZSBuZXh0IHBpcGVsaW5lIGVsZW1lbnQuCiAgICAgKiBTaW1pbGFybHkgd2hlbiBFeHRyYWN0b3IgaXMgeWllbGRpbmcgYmF0Y2hlcyBvZiByb3dzLCB0aGlzIG1ldGhvZCB3aWxsIHNwbGl0IHRoZW0gaW50byBzbWFsbGVyIGJhdGNoZXMgb2YgZ2l2ZW4KICAgICAqIHNpemUuCiAgICAgKgogICAgICogSW4gb3JkZXIgdG8gbWVyZ2UgYWxsIFJvd3MgaW50byBhIHNpbmdsZSBiYXRjaCB1c2UgRGF0YUZyYW1lOjpjb2xsZWN0KCkgbWV0aG9kIG9yIHNldCBzaXplIHRvIC0xIG9yIDAuCiAgICAgKgogICAgICogQHBhcmFtIGludDwtMSwgbWF4PiAkc2l6ZQogICAgICoKICAgICAqIEBsYXp5CiAgICAgKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":151,"slug":"cache","name":"cache","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"id","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"cacheBatchSize","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"cache","type":[{"name":"Cache","namespace":"Flow\\ETL","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBTdGFydCBwcm9jZXNzaW5nIHJvd3MgdXAgdG8gdGhpcyBtb21lbnQgYW5kIHB1dCBlYWNoIGluc3RhbmNlIG9mIFJvd3MKICAgICAqIGludG8gcHJldmlvdXNseSBkZWZpbmVkIGNhY2hlLgogICAgICogQ2FjaGUgdHlwZSBjYW4gYmUgc2V0IHRocm91Z2ggQ29uZmlnQnVpbGRlci4KICAgICAqIEJ5IGRlZmF1bHQgZXZlcnl0aGluZyBpcyBjYWNoZWQgaW4gc3lzdGVtIHRtcCBkaXIuCiAgICAgKgogICAgICogSW1wb3J0YW50OiBjYWNoZSBiYXRjaCBzaXplIG1pZ2h0IHNpZ25pZmljYW50bHkgaW1wcm92ZSBwZXJmb3JtYW5jZSB3aGVuIHByb2Nlc3NpbmcgbGFyZ2UgYW1vdW50IG9mIHJvd3MuCiAgICAgKiBMYXJnZXIgYmF0Y2ggc2l6ZSB3aWxsIGluY3JlYXNlIG1lbW9yeSBjb25zdW1wdGlvbiBidXQgd2lsbCByZWR1Y2UgbnVtYmVyIG9mIElPIG9wZXJhdGlvbnMuCiAgICAgKiBXaGVuIG5vdCBzZXQsIHRoZSBiYXRjaCBzaXplIGlzIHRha2VuIGZyb20gdGhlIGxhc3QgRGF0YUZyYW1lOjpiYXRjaFNpemUoKSBjYWxsLgogICAgICoKICAgICAqIEBsYXp5CiAgICAgKgogICAgICogQHBhcmFtIG51bGx8c3RyaW5nICRpZAogICAgICogQHBhcmFtIG51bGx8Q2FjaGUgJGNhY2hlIHJlYWRzIG9mIHRoaXMgY2FjaGUgbXVzdCBwYXNzIHRoZSBzYW1lIGluc3RhbmNlIHRvIGZyb21fY2FjaGUoKQogICAgICoKICAgICAqIEB0aHJvd3MgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uCiAgICAgKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":168,"slug":"collect","name":"collect","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBCZWZvcmUgdHJhbnNmb3JtaW5nIHJvd3MsIGNvbGxlY3QgdGhlbSBhbmQgbWVyZ2UgaW50byBzaW5nbGUgUm93cyBpbnN0YW5jZS4KICAgICAqIFRoaXMgbWlnaHQgbGVhZCB0byBtZW1vcnkgaXNzdWVzIHdoZW4gcHJvY2Vzc2luZyBsYXJnZSBhbW91bnQgb2Ygcm93cywgdXNlIHdpdGggY2F1dGlvbi4KICAgICAqCiAgICAgKiBAbGF6eQogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":187,"slug":"collectrefs","name":"collectRefs","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"references","type":[{"name":"References","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBUaGlzIG1ldGhvZCBhbGxvd3MgdG8gY29sbGVjdCByZWZlcmVuY2VzIHRvIGFsbCBlbnRyaWVzIHVzZWQgaW4gdGhpcyBwaXBlbGluZS4KICAgICAqCiAgICAgKiBgYGBwaHAKICAgICAqIChuZXcgRmxvdygpKQogICAgICogICAtPnJlYWQoRnJvbTo6Y2hhaW4oKSkKICAgICAqICAgLT5jb2xsZWN0UmVmcygkcmVmcyA9IHJlZnMoKSkKICAgICAqICAgLT5ydW4oKTsKICAgICAqIGBgYAogICAgICoKICAgICAqIEBsYXp5CiAgICAgKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":194,"slug":"constrain","name":"constrain","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"constraint","type":[{"name":"Constraint","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"constraints","type":[{"name":"Constraint","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":205,"slug":"count","name":"count","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[],"return_type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAdHJpZ2dlcgogICAgICogUmV0dXJuIHRvdGFsIGNvdW50IG9mIHJvd3MgcHJvY2Vzc2VkIGJ5IHRoaXMgcGlwZWxpbmUuCiAgICAgKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":225,"slug":"crossjoin","name":"crossJoin","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"dataFrame","type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"prefix","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"''"}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAbGF6eQogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":242,"slug":"display","name":"display","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"limit","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"20"},{"name":"truncate","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"20"},{"name":"formatter","type":[{"name":"Formatter","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Formatter\\AsciiTableFormatter::..."}],"return_type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAcGFyYW0gaW50ICRsaW1pdCBtYXhpbXVtIG51bWJlcnMgb2Ygcm93cyB0byBkaXNwbGF5CiAgICAgKiBAcGFyYW0gYm9vbHxpbnQgJHRydW5jYXRlIGZhbHNlIG9yIGlmIHNldCB0byAwIGNvbHVtbnMgYXJlIG5vdCB0cnVuY2F0ZWQsIG90aGVyd2lzZSBkZWZhdWx0IHRydW5jYXRlIHRvIDIwCiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJhY3RlcnMKICAgICAqIEBwYXJhbSBGb3JtYXR0ZXIgJGZvcm1hdHRlcgogICAgICoKICAgICAqIEB0cmlnZ2VyCiAgICAgKgogICAgICogQHRocm93cyBJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24KICAgICAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":269,"slug":"drop","name":"drop","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"entries","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBEcm9wIGdpdmVuIGVudHJpZXMuCiAgICAgKgogICAgICogQGxhenkKICAgICAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":283,"slug":"dropduplicates","name":"dropDuplicates","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"entries","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAcGFyYW0gUmVmZXJlbmNlfHN0cmluZyAuLi4kZW50cmllcwogICAgICoKICAgICAqIEBsYXp5CiAgICAgKgogICAgICogQHJldHVybiAkdGhpcwogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":290,"slug":"duplicaterow","name":"duplicateRow","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"condition","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null},{"name":"entries","type":[{"name":"WithEntry","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":309,"slug":"fetch","name":"fetch","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"limit","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Rows","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBCZSBhd2FyZSB0aGF0IGZldGNoIGlzIG5vdCBtZW1vcnkgc2FmZSBhbmQgd2lsbCBsb2FkIGFsbCByb3dzIGludG8gbWVtb3J5LgogICAgICogSWYgeW91IHdhbnQgdG8gc2FmZWx5IGl0ZXJhdGUgb3ZlciBSb3dzIHVzZSBvZSBvZiB0aGUgZm9sbG93aW5nIG1ldGhvZHM6LgogICAgICoKICAgICAqIERhdGFGcmFtZTo6Z2V0KCkgOiBcR2VuZXJhdG9yCiAgICAgKiBEYXRhRnJhbWU6OmdldEFzQXJyYXkoKSA6IFxHZW5lcmF0b3IKICAgICAqIERhdGFGcmFtZTo6Z2V0RWFjaEFzQXJyYXkoKSA6IFxHZW5lcmF0b3IKICAgICAqCiAgICAgKiBAdHJpZ2dlcgogICAgICoKICAgICAqIEB0aHJvd3MgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uCiAgICAgKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":326,"slug":"filter","name":"filter","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"function","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAbGF6eQogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":338,"slug":"filters","name":"filters","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"functions","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAbGF6eQogICAgICoKICAgICAqIEBwYXJhbSBhcnJheTxTY2FsYXJGdW5jdGlvbj4gJGZ1bmN0aW9ucwogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":352,"slug":"foreach","name":"forEach","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"callback","type":[{"name":"callable","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"void","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAdHJpZ2dlcgogICAgICoKICAgICAqIEBwYXJhbSBudWxsfGNhbGxhYmxlKFJvd3MgJHJvd3MsIEZsb3dDb250ZXh0ICRjb250ZXh0KSA6IHZvaWQgJGNhbGxiYWNrCiAgICAgKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":373,"slug":"get","name":"get","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[],"return_type":[{"name":"Generator","namespace":"","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBZaWVsZHMgZWFjaCByb3cgYXMgYW4gaW5zdGFuY2Ugb2YgUm93cy4KICAgICAqCiAgICAgKiBAdHJpZ2dlcgogICAgICoKICAgICAqIEByZXR1cm4gXEdlbmVyYXRvcjxSb3dzPgogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":392,"slug":"getasarray","name":"getAsArray","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[],"return_type":[{"name":"Generator","namespace":"","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBZaWVsZHMgZWFjaCByb3cgYXMgYW4gYXJyYXkuCiAgICAgKgogICAgICogQHRyaWdnZXIKICAgICAqCiAgICAgKiBAcmV0dXJuIFxHZW5lcmF0b3I8YXJyYXk8YXJyYXk8bWl4ZWQ+Pj4KICAgICAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":411,"slug":"geteachasarray","name":"getEachAsArray","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[],"return_type":[{"name":"Generator","namespace":"","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBZaWVsZCBlYWNoIHJvdyBhcyBhbiBhcnJheS4KICAgICAqCiAgICAgKiBAdHJpZ2dlcgogICAgICoKICAgICAqIEByZXR1cm4gXEdlbmVyYXRvcjxhcnJheTxtaXhlZD4+CiAgICAgKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":432,"slug":"groupby","name":"groupBy","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"entries","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"algorithm","type":[{"name":"GroupByAlgorithmBuilder","namespace":"Flow\\ETL\\Config\\Grouping","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"GroupedDataFrame","namespace":"Flow\\ETL\\DataFrame","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAbGF6eQogICAgICoKICAgICAqIEBwYXJhbSBHcm91cEJ5UmVmZXJlbmNlc3xSZWZlcmVuY2V8c3RyaW5nICRlbnRyaWVzIGEgc2luZ2xlIGNvbHVtbiBpcyBncm91cGVkIGJ5IG9uIGl0cyBvd24KICAgICAqIEBwYXJhbSBudWxsfEdyb3VwQnlBbGdvcml0aG1CdWlsZGVyICRhbGdvcml0aG0gbnVsbCBkZWZlcnMgdG8gY29uZmlndXJhdGlvbjsgYSBidWlsZGVyIHBpbnMgdGhlCiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxnb3JpdGhtIGZvciB0aGlzIG9wZXJhdGlvbiBhbmQgc2tpcHMgYW55IGF1dG9tYXRpYyBjaG9pY2UKICAgICAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":451,"slug":"join","name":"join","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"dataFrame","type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"on","type":[{"name":"Expression","namespace":"Flow\\ETL\\Join","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"type","type":[{"name":"Join","namespace":"Flow\\ETL\\Join","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Join\\Join::..."},{"name":"algorithm","type":[{"name":"JoinAlgorithmBuilder","namespace":"Flow\\ETL\\Config\\Join","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAbGF6eQogICAgICoKICAgICAqIEBwYXJhbSBudWxsfEpvaW5BbGdvcml0aG1CdWlsZGVyICRhbGdvcml0aG0gbnVsbCBkZWZlcnMgdG8gY29uZmlndXJhdGlvbjsgYSBidWlsZGVyIHBpbnMgdGhlIGFsZ29yaXRobQogICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciB0aGlzIG9wZXJhdGlvbiBhbmQgc2tpcHMgYW55IGF1dG9tYXRpYyBjaG9pY2UKICAgICAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":479,"slug":"joineach","name":"joinEach","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"factory","type":[{"name":"DataFrameFactory","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"on","type":[{"name":"Expression","namespace":"Flow\\ETL\\Join","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"type","type":[{"name":"Join","namespace":"Flow\\ETL\\Join","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Join\\Join::..."}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBKb2lucyBpbiBtZW1vcnkgcGVyIGJhdGNoOyBpdCBpcyBub3QgZ292ZXJuZWQgYnkgdGhlIGpvaW4gYWxnb3JpdGhtIGFuZCB0YWtlcyBubyBhbGdvcml0aG0gb3ZlcnJpZGUuCiAgICAgKgogICAgICogQGxhenkKICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nfEpvaW4gJHR5cGUKICAgICAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":495,"slug":"limit","name":"limit","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"limit","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAbGF6eQogICAgICoKICAgICAqIEB0aHJvd3MgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uCiAgICAgKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":509,"slug":"load","name":"load","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"sink","type":[{"name":"Loader","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false},{"name":"Sink","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAbGF6eQogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":555,"slug":"match","name":"match","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"schema","type":[{"name":"Schema","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"validator","type":[{"name":"SchemaValidator","namespace":"Flow\\ETL","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAbGF6eQogICAgICoKICAgICAqIEBwYXJhbSBudWxsfFNjaGVtYVZhbGlkYXRvciAkdmFsaWRhdG9yIC0gd2hlbiBudWxsLCBTdHJpY3RWYWxpZGF0b3IgZ2V0cyBpbml0aWFsaXplZAogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":576,"slug":"offset","name":"offset","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"offset","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBTa2lwIGdpdmVuIG51bWJlciBvZiByb3dzIGZyb20gdGhlIGJlZ2lubmluZyBvZiB0aGUgZGF0YXNldC4KICAgICAqIFdoZW4gJG9mZnNldCBpcyBudWxsLCBub3RoaW5nIGhhcHBlbnMgKG5vIHJvd3MgYXJlIHNraXBwZWQpLgogICAgICoKICAgICAqIFBlcmZvcm1hbmNlIE5vdGU6IERhdGFGcmFtZSBtdXN0IGl0ZXJhdGUgdGhyb3VnaCBhbmQgcHJvY2VzcyBhbGwgc2tpcHBlZCByb3dzCiAgICAgKiB0byByZWFjaCB0aGUgb2Zmc2V0IHBvc2l0aW9uLiBGb3IgbGFyZ2Ugb2Zmc2V0cywgdGhpcyBjYW4gaW1wYWN0IHBlcmZvcm1hbmNlCiAgICAgKiBhcyB0aGUgZGF0YSBzb3VyY2Ugc3RpbGwgbmVlZHMgdG8gYmUgcmVhZCBhbmQgcHJvY2Vzc2VkIHVwIHRvIHRoZSBvZmZzZXQgcG9pbnQuCiAgICAgKgogICAgICogQHBhcmFtID9pbnQ8MCwgbWF4PiAkb2Zmc2V0CiAgICAgKgogICAgICogQGxhenkKICAgICAqCiAgICAgKiBAdGhyb3dzIEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbgogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":590,"slug":"onerror","name":"onError","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"handler","type":[{"name":"ErrorHandler","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAbGF6eQogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":602,"slug":"repartition","name":"repartition","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"entry","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"entries","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAbGF6eQogICAgICogU2h1ZmZsZXMgdGhlIHN0cmVhbSBzbyBldmVyeSByb3cgc2hhcmluZyB0aGUgZ2l2ZW4gY29sdW1ucyBhcnJpdmVzIGluIG9uZSBiYXRjaC4gSXQgZG9lcyBub3QKICAgICAqIHdyaXRlIGRpcmVjdG9yaWVzIC0gdGhhdCBpcyBkZWNsYXJlZCBvbiB0aGUgbG9hZGVyLCBgdG9fY3N2KC4uLiktPnBhcnRpdGlvbkJ5KCdyZWdpb24nKWAuCiAgICAgKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":614,"slug":"printrows","name":"printRows","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"limit","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"20"},{"name":"truncate","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"20"},{"name":"formatter","type":[{"name":"Formatter","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Formatter\\AsciiTableFormatter::..."}],"return_type":[{"name":"void","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAdHJpZ2dlcgogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":634,"slug":"explain","name":"explain","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"trigger","type":[{"name":"Trigger","namespace":"Flow\\ETL\\Plan","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Plan\\Trigger::..."}],"return_type":[{"name":"Plan","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBUaGUgcGxhbiAkdHJpZ2dlciB3b3VsZCBydW4gb3ZlciB0aGlzIGZyYW1lLCBmcm96ZW46IGxhdGVyIHZlcmJzIG9uIHRoaXMgZnJhbWUgZG8gbm90IHJlYWNoIGl0LiBUaGUgZGVmYXVsdAogICAgICogYWRkcyBubyBjb25zdW1lciBvZiBpdHMgb3duIC0gaXQgZHJhd3MgdGhlIGZyYW1lIGFzIGJ1aWx0LCBpdHMgY2hhaW4gYW5kIGl0cyBzaW5rcy4gdG9TdHJpbmcoKSBwcmludHMgaXQgYXMgYQogICAgICogdHJlZS4gQW5zd2VycyBmcm9tIHRoZSBwbGFuIHdpdGhvdXQgcmVhZGluZyBhIHJvdy4KICAgICAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":644,"slug":"printschema","name":"printSchema","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"formatter","type":[{"name":"SchemaFormatter","namespace":"Flow\\ETL\\Schema","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Row\\Formatter\\ASCIISchemaFormatter::..."}],"return_type":[{"name":"void","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAbGF6eQogICAgICoKICAgICAqIEB0aHJvd3MgU2NoZW1hTm90RGVyaXZhYmxlRXhjZXB0aW9uCiAgICAgKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":652,"slug":"rename","name":"rename","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"from","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"to","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAbGF6eQogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":659,"slug":"renameeach","name":"renameEach","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"strategies","type":[{"name":"RenameEntryStrategy","namespace":"Flow\\ETL\\Transformer\\Rename","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":670,"slug":"rows","name":"rows","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"transformer","type":[{"name":"Transformer","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false},{"name":"Transformation","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAbGF6eQogICAgICogQWxpYXMgZm9yIEVUTDo6dHJhbnNmb3JtIG1ldGhvZC4KICAgICAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":687,"slug":"run","name":"run","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"analyze","type":[{"name":"Analyze","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"Report","namespace":"Flow\\ETL\\Dataset","is_nullable":true,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAdHJpZ2dlcgogICAgICoKICAgICAqIFdoZW4gYW5hbHl6aW5nIHBpcGVsaW5lIGV4ZWN1dGlvbiB3ZSBjYW4gY2hvc2UgdG8gY29sbGVjdCB2YXJpb3VzIG1ldHJpY3MgdGhyb3VnaCBhbmFseXplKCktPndpdGgqKCkgbWV0aG9kCiAgICAgKgogICAgICogLSBjb2x1bW4gc3RhdGlzdGljcyAtIGFuYWx5emUoKS0+d2l0aENvbHVtblN0YXRpc3RpY3MoKQogICAgICogLSBzY2hlbWEgLSBhbmFseXplKCktPndpdGhTY2hlbWEoKQogICAgICoKICAgICAqIEBwYXJhbSBBbmFseXplfGJvb2wgJGFuYWx5emUgLSB3aGVuIHNldCBydW4gd2lsbCByZXR1cm4gUmVwb3J0CiAgICAgKgogICAgICogQHJldHVybiAoJGFuYWx5emUgaXMgQW5hbHl6ZXx0cnVlID8gUmVwb3J0IDogbnVsbCkKICAgICAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":715,"slug":"schema","name":"schema","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[],"return_type":[{"name":"Schema","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAbGF6eQogICAgICoKICAgICAqIEB0aHJvd3MgU2NoZW1hTm90RGVyaXZhYmxlRXhjZXB0aW9uCiAgICAgKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":728,"slug":"select","name":"select","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"entries","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAbGF6eQogICAgICogS2VlcCBvbmx5IGdpdmVuIGVudHJpZXMuCiAgICAgKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":742,"slug":"sortby","name":"sortBy","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"entries","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"algorithm","type":[{"name":"SortAlgorithmBuilder","namespace":"Flow\\ETL\\Config\\Sort","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAbGF6eQogICAgICoKICAgICAqIEBwYXJhbSBSZWZlcmVuY2V8U29ydFJlZmVyZW5jZXN8c3RyaW5nICRlbnRyaWVzIGEgc2luZ2xlIGNvbHVtbiBpcyBzb3J0ZWQgYnkgb24gaXRzIG93bgogICAgICogQHBhcmFtIG51bGx8U29ydEFsZ29yaXRobUJ1aWxkZXIgJGFsZ29yaXRobSBudWxsIGRlZmVycyB0byBjb25maWd1cmF0aW9uOyBhIGJ1aWxkZXIgcGlucyB0aGUgYWxnb3JpdGhtCiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIHRoaXMgb3BlcmF0aW9uIGFuZCBza2lwcyBhbnkgYXV0b21hdGljIGNob2ljZQogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":756,"slug":"transform","name":"transform","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"transformer","type":[{"name":"Transformer","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false},{"name":"Transformation","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false},{"name":"Transformations","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false},{"name":"WithEntry","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBBbGlhcyBmb3IgRGF0YUZyYW1lOjp3aXRoKCkuCiAgICAgKgogICAgICogQGxhenkKICAgICAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":767,"slug":"until","name":"until","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"function","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBUaGUgZGlmZmVyZW5jZSBiZXR3ZWVuIGZpbHRlciBhbmQgdW50aWwgaXMgdGhhdCBmaWx0ZXIgd2lsbCBrZWVwIGZpbHRlcmluZyByb3dzIHVudGlsIGV4dHJhY3RvcnMgZmluaXNoIHlpZWxkaW5nCiAgICAgKiByb3dzLiBVbnRpbCB3aWxsIHNlbmQgYSBTVE9QIHNpZ25hbCB0byB0aGUgRXh0cmFjdG9yIHdoZW4gdGhlIGNvbmRpdGlvbiBpcyBub3QgbWV0LgogICAgICoKICAgICAqIEBsYXp5CiAgICAgKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":781,"slug":"void","name":"void","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAbGF6eQogICAgICogVGhpcyBtZXRob2QgaXMgdXNlZnVsIG1vc3RseSBpbiBkZXZlbG9wbWVudCB3aGVuCiAgICAgKiB5b3Ugd2FudCB0byBwYXVzZSBwcm9jZXNzaW5nIGF0IGNlcnRhaW4gbW9tZW50IHdpdGhvdXQKICAgICAqIHJlbW92aW5nIGNvZGUuIEFsbCBvcGVyYXRpb25zIHdpbGwgZ2V0IHByb2Nlc3NlZCB1cCB0byB0aGlzIHBvaW50LAogICAgICogZnJvbSBoZXJlIG5vIHJvd3MgYXJlIHBhc3NlZCBmb3J3YXJkLgogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":791,"slug":"with","name":"with","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"transformer","type":[{"name":"Transformer","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false},{"name":"Transformation","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false},{"name":"Transformations","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false},{"name":"WithEntry","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAbGF6eQogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":819,"slug":"withentries","name":"withEntries","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"references","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAbGF6eQogICAgICoKICAgICAqIEBwYXJhbSBhcnJheTxpbnQsIFdpdGhFbnRyeT58YXJyYXk8c3RyaW5nLCBTY2FsYXJGdW5jdGlvbnxXaW5kb3dGdW5jdGlvbnxXaXRoRW50cnk+ICRyZWZlcmVuY2VzCiAgICAgKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":837,"slug":"withentry","name":"withEntry","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"entry","type":[{"name":"Definition","namespace":"Flow\\ETL\\Schema","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"reference","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"WindowFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAcGFyYW0gRGVmaW5pdGlvbjxtaXhlZD58c3RyaW5nICRlbnRyeQogICAgICoKICAgICAqIEBsYXp5CiAgICAgKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":852,"slug":"write","name":"write","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"sink","type":[{"name":"Loader","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false},{"name":"Sink","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAbGF6eQogICAgICogQWxpYXMgZm9yIEVUTDo6bG9hZCBmdW5jdGlvbi4KICAgICAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame\/GroupedDataFrame.php","start_line_in_file":21,"slug":"aggregate","name":"aggregate","class":"Flow\\ETL\\DataFrame\\GroupedDataFrame","class_slug":"groupeddataframe","parameters":[{"name":"aggregations","type":[{"name":"AggregatingFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"DataFrame","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame\/GroupedDataFrame.php","start_line_in_file":28,"slug":"pivot","name":"pivot","class":"Flow\\ETL\\DataFrame\\GroupedDataFrame","class_slug":"groupeddataframe","parameters":[{"name":"ref","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"values","type":[{"name":"PivotValues","namespace":"Flow\\ETL\\GroupBy","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":null}] \ No newline at end of file +[{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":31,"slug":"and","name":"and","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"function","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"All","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":36,"slug":"andnot","name":"andNot","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"function","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"All","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":41,"slug":"append","name":"append","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"suffix","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Append","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":54,"slug":"arrayfilter","name":"arrayFilter","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"value","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ArrayFilter","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBGaWx0ZXJzIGFuIGFycmF5IGJ5IHJlbW92aW5nIGFsbCBlbGVtZW50cyB0aGF0IG1hdGNoZXMgcGFzc2VkIHZhbHVlLgogICAgICogQXBwbGljYWJsZSB0byBhbGwgZGF0YSBzdHJ1Y3R1cmVzIHRoYXQgY2FuIGJlIGNvbnZlcnRlZCB0byBhbiBhcnJheToKICAgICAqICAgIC0ganNvbgogICAgICogICAgLSBsaXN0CiAgICAgKiAgICAtIG1hcAogICAgICogICAgLSBzdHJ1Y3R1cmUuCiAgICAgKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":59,"slug":"arrayget","name":"arrayGet","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"path","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ArrayGet","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":67,"slug":"arraygetcollection","name":"arrayGetCollection","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"keys","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ArrayGetCollection","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBAcGFyYW0gU2NhbGFyRnVuY3Rpb258YXJyYXk8YXJyYXkta2V5LCBtaXhlZD4gJGtleXMKICAgICAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":72,"slug":"arraygetcollectionfirst","name":"arrayGetCollectionFirst","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"keys","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"ArrayGetCollection","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":85,"slug":"arraykeep","name":"arrayKeep","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"value","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ArrayKeep","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBGaWx0ZXJzIGFuIGFycmF5IGJ5IGtlZXBpbmcgb25seSBlbGVtZW50cyB0aGF0IG1hdGNoZXMgcGFzc2VkIHZhbHVlLgogICAgICogQXBwbGljYWJsZSB0byBhbGwgZGF0YSBzdHJ1Y3R1cmVzIHRoYXQgY2FuIGJlIGNvbnZlcnRlZCB0byBhbiBhcnJheToKICAgICAqICAgLSBqc29uCiAgICAgKiAgIC0gbGlzdAogICAgICogICAtIG1hcAogICAgICogICAtIHN0cnVjdHVyZS4KICAgICAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":98,"slug":"arraykeys","name":"arrayKeys","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"ArrayKeys","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBSZXR1cm5zIGFsbCBrZXlzIGZyb20gYW4gYXJyYXksIGlnbm9yaW5nIHRoZSB2YWx1ZXMuCiAgICAgKiBBcHBsaWNhYmxlIHRvIGFsbCBkYXRhIHN0cnVjdHVyZXMgdGhhdCBjYW4gYmUgY29udmVydGVkIHRvIGFuIGFycmF5OgogICAgICogICAtIGpzb24KICAgICAqICAgLSBsaXN0CiAgICAgKiAgIC0gbWFwCiAgICAgKiAgIC0gc3RydWN0dXJlLgogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":106,"slug":"arraymerge","name":"arrayMerge","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"ref","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ArrayMerge","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBAcGFyYW0gU2NhbGFyRnVuY3Rpb258YXJyYXk8YXJyYXkta2V5LCBtaXhlZD4gJHJlZgogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":111,"slug":"arraymergecollection","name":"arrayMergeCollection","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"ArrayMergeCollection","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":116,"slug":"arraypathexists","name":"arrayPathExists","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"path","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ArrayPathExists","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":121,"slug":"arrayreverse","name":"arrayReverse","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"preserveKeys","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"ArrayReverse","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":126,"slug":"arraysort","name":"arraySort","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"sortFunction","type":[{"name":"Sort","namespace":"Flow\\ETL\\Function\\ArraySort","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"flags","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"recursive","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"}],"return_type":[{"name":"ArraySort","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":142,"slug":"arrayvalues","name":"arrayValues","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"ArrayValues","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBSZXR1cm5zIGFsbCB2YWx1ZXMgZnJvbSBhbiBhcnJheSwgaWdub3JpbmcgdGhlIGtleXMuCiAgICAgKiBBcHBsaWNhYmxlIHRvIGFsbCBkYXRhIHN0cnVjdHVyZXMgdGhhdCBjYW4gYmUgY29udmVydGVkIHRvIGFuIGFycmF5OgogICAgICogICAtIGpzb24KICAgICAqICAgLSBsaXN0CiAgICAgKiAgIC0gbWFwCiAgICAgKiAgIC0gc3RydWN0dXJlLgogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":147,"slug":"ascii","name":"ascii","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"Ascii","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":157,"slug":"between","name":"between","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"lowerBoundRef","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null},{"name":"upperBoundRef","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null},{"name":"boundary","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"Boundary","namespace":"Flow\\ETL\\Function\\Between","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Function\\Between\\Boundary::..."}],"return_type":[{"name":"Between","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBAcGFyYW0gbWl4ZWR8U2NhbGFyRnVuY3Rpb24gJGxvd2VyQm91bmRSZWYKICAgICAqIEBwYXJhbSBtaXhlZHxTY2FsYXJGdW5jdGlvbiAkdXBwZXJCb3VuZFJlZgogICAgICogQHBhcmFtIEJvdW5kYXJ5fFNjYWxhckZ1bmN0aW9uICRib3VuZGFyeQogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":165,"slug":"binarylength","name":"binaryLength","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"BinaryLength","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":174,"slug":"call","name":"call","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"callable","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"returnType","type":[{"name":"Type","namespace":"Flow\\Types","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"arguments","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"refAlias","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"0"}],"return_type":[{"name":"CallUserFunc","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBAcGFyYW0gYXJyYXk8YXJyYXkta2V5LCBtaXhlZD4gJGFyZ3VtZW50cwogICAgICogQHBhcmFtIFR5cGU8bWl4ZWQ+ICRyZXR1cm5UeXBlCiAgICAgKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":183,"slug":"capitalize","name":"capitalize","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"Capitalize","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":191,"slug":"cast","name":"cast","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"type","type":[{"name":"Type","namespace":"Flow\\Types","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Cast","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBAcGFyYW0gc3RyaW5nfFR5cGU8bWl4ZWQ+ICR0eXBlCiAgICAgKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":196,"slug":"chunk","name":"chunk","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"size","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Chunk","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":201,"slug":"coalesce","name":"coalesce","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"params","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"Coalesce","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":206,"slug":"codepointlength","name":"codePointLength","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"CodePointLength","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":211,"slug":"collapsewhitespace","name":"collapseWhitespace","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"CollapseWhitespace","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":216,"slug":"concat","name":"concat","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"params","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"Concat","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":221,"slug":"concatwithseparator","name":"concatWithSeparator","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"separator","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"params","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"ConcatWithSeparator","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":228,"slug":"contains","name":"contains","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"needle","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Contains","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":233,"slug":"dateformat","name":"dateFormat","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"format","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'Y-m-d'"}],"return_type":[{"name":"DateTimeFormat","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":238,"slug":"datetimeformat","name":"dateTimeFormat","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"format","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'Y-m-d H:i:s'"}],"return_type":[{"name":"DateTimeFormat","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":243,"slug":"divide","name":"divide","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"value","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"scale","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"rounding","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"Rounding","namespace":"Flow\\Calculator","is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Divide","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":251,"slug":"domelementattributescount","name":"domElementAttributesCount","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"DOMElementAttributesCount","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":256,"slug":"domelementattributevalue","name":"domElementAttributeValue","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"attribute","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"DOMElementAttributeValue","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":261,"slug":"domelementnamespace","name":"domElementNamespace","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"attribute","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"DOMElementNamespaceValue","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":266,"slug":"domelementnextsibling","name":"domElementNextSibling","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"DOMElementNextSibling","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":271,"slug":"domelementparent","name":"domElementParent","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"DOMElementParent","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":276,"slug":"domelementprevioussibling","name":"domElementPreviousSibling","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"DOMElementPreviousSibling","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":281,"slug":"domelementvalue","name":"domElementValue","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"DOMElementValue","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":286,"slug":"endswith","name":"endsWith","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"needle","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"EndsWith","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":291,"slug":"ensureend","name":"ensureEnd","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"suffix","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"EnsureEnd","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":296,"slug":"ensurestart","name":"ensureStart","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"prefix","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"EnsureStart","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":301,"slug":"enumname","name":"enumName","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"EnumName","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":306,"slug":"enumvalue","name":"enumValue","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"EnumValue","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":311,"slug":"equals","name":"equals","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"ref","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Equals","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":316,"slug":"exists","name":"exists","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"Exists","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":345,"slug":"expand","name":"expand","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"expand","type":[{"name":"ArrayExpand","namespace":"Flow\\ETL\\Function\\ArrayExpand","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Function\\ArrayExpand\\ArrayExpand::..."}],"return_type":[{"name":"ArrayExpand","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBFeHBhbmRzIGVhY2ggdmFsdWUgaW50byBhIGNvbHVtbiwgaWYgdGhlcmUgYXJlIG1vcmUgdGhhbiBvbmUgdmFsdWUsIG11bHRpcGxlIHJvd3Mgd2lsbCBiZSBjcmVhdGVkLgogICAgICogQXJyYXkga2V5cyBhcmUgaWdub3JlZCwgb25seSB2YWx1ZXMgYXJlIHVzZWQgdG8gY3JlYXRlIG5ldyByb3dzLgogICAgICogTmVzdGVkIGluIGFub3RoZXIgZnVuY3Rpb24gKHN0cnVjdHVyZSgpLCBjb25jYXQoKSwgLi4uKSBpdCBzdGlsbCBnaXZlcyBvbmUgcm93IHBlciBlbGVtZW50LiBTZXZlcmFsCiAgICAgKiBleHBhbmRzIGluIG9uZSBleHByZXNzaW9uIGFyZSB6aXBwZWQgdG8gdGhlIGxvbmdlc3QgbGlzdDsgYSBzaG9ydGVyIG9uZSBnaXZlcyBudWxsLCBzbyBpdHMgZWxlbWVudAogICAgICogdHlwZSBiZWNvbWVzIG51bGxhYmxlLiBJdCBpcyByZWZ1c2VkIGluc2lkZSBhbm90aGVyIGFycmF5X2V4cGFuZCgpIGFuZCBpbiBmaWx0ZXIoKSwgdW50aWwoKSwKICAgICAqIGR1cGxpY2F0ZVJvdygpLCBhZ2dyZWdhdGUoKSwgb3ZlcigpIGFuZCBvbkVhY2goKS4KICAgICAqCiAgICAgKiBCZWZvcmU6CiAgICAgKiAgICstLSstLS0tLS0tLS0tLS0tLS0tLS0tKwogICAgICogICB8aWR8ICAgICAgICAgICAgICBhcnJheXwKICAgICAqICAgKy0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rCiAgICAgKiAgIHwgMXx7ImEiOjEsImIiOjIsImMiOjN9fAogICAgICogICArLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSsKICAgICAqCiAgICAgKiBBZnRlcjoKICAgICAqICAgKy0tKy0tLS0tLS0tKwogICAgICogICB8aWR8ZXhwYW5kZWR8CiAgICAgKiAgICstLSstLS0tLS0tLSsKICAgICAqICAgfCAxfCAgICAgICAxfAogICAgICogICB8IDF8ICAgICAgIDJ8CiAgICAgKiAgIHwgMXwgICAgICAgM3wKICAgICAqICAgKy0tKy0tLS0tLS0tKwogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":350,"slug":"greaterthan","name":"greaterThan","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"ref","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null}],"return_type":[{"name":"GreaterThan","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":355,"slug":"greaterthanequal","name":"greaterThanEqual","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"ref","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null}],"return_type":[{"name":"GreaterThanEqual","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":360,"slug":"hash","name":"hash","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"algorithm","type":[{"name":"Algorithm","namespace":"Flow\\ETL\\Hash","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Hash\\NativePHPHash::..."}],"return_type":[{"name":"Hash","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":365,"slug":"htmlqueryselector","name":"htmlQuerySelector","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"path","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"HTMLQuerySelector","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":370,"slug":"htmlqueryselectorall","name":"htmlQuerySelectorAll","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"path","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"HTMLQuerySelectorAll","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":378,"slug":"indexof","name":"indexOf","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"needle","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"ignoreCase","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"offset","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"0"}],"return_type":[{"name":"IndexOf","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBSZXR1cm5zIHRoZSBpbmRleCBvZiBnaXZlbiAkbmVlZGxlIGluIHN0cmluZy4KICAgICAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":389,"slug":"indexoflast","name":"indexOfLast","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"needle","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"ignoreCase","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"offset","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"0"}],"return_type":[{"name":"IndexOfLast","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBSZXR1cm5zIHRoZSBsYXN0IGluZGV4IG9mIGdpdmVuICRuZWVkbGUgaW4gc3RyaW5nLgogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":397,"slug":"isempty","name":"isEmpty","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"IsEmpty","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":402,"slug":"iseven","name":"isEven","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"Equals","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":407,"slug":"isfalse","name":"isFalse","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"Same","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":415,"slug":"isin","name":"isIn","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"haystack","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"IsIn","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBAcGFyYW0gU2NhbGFyRnVuY3Rpb258YXJyYXk8YXJyYXkta2V5LCBtaXhlZD4gJGhheXN0YWNrCiAgICAgKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":420,"slug":"isnotnull","name":"isNotNull","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"IsNotNull","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":425,"slug":"isnotnumeric","name":"isNotNumeric","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"IsNotNumeric","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":430,"slug":"isnull","name":"isNull","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"IsNull","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":435,"slug":"isnumeric","name":"isNumeric","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"IsNumeric","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":440,"slug":"isodd","name":"isOdd","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"NotEquals","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":445,"slug":"istrue","name":"isTrue","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"Same","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":453,"slug":"istype","name":"isType","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"types","type":[{"name":"Type","namespace":"Flow\\Types","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"IsType","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBAcGFyYW0gc3RyaW5nfFR5cGU8bWl4ZWQ+ICR0eXBlcwogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":465,"slug":"isutf8","name":"isUtf8","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"IsUtf8","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBDaGVjayBzdHJpbmcgaXMgdXRmOCBhbmQgcmV0dXJucyB0cnVlIG9yIGZhbHNlLgogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":470,"slug":"jsondecode","name":"jsonDecode","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"flags","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"4194304"}],"return_type":[{"name":"JsonDecode","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":475,"slug":"jsonencode","name":"jsonEncode","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"flags","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"4194304"}],"return_type":[{"name":"JsonEncode","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":480,"slug":"lessthan","name":"lessThan","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"ref","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null}],"return_type":[{"name":"LessThan","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":485,"slug":"lessthanequal","name":"lessThanEqual","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"ref","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"LessThanEqual","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":490,"slug":"literal","name":"literal","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"value","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Literal","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":495,"slug":"lower","name":"lower","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"ToLower","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":500,"slug":"minus","name":"minus","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"ref","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"exact","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"Minus","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":505,"slug":"mod","name":"mod","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"value","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Mod","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":510,"slug":"modifydatetime","name":"modifyDateTime","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"modifier","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ModifyDateTime","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":515,"slug":"multiply","name":"multiply","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"value","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"exact","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"Multiply","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":520,"slug":"notequals","name":"notEquals","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"value","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null}],"return_type":[{"name":"NotEquals","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":525,"slug":"notsame","name":"notSame","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"value","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null}],"return_type":[{"name":"NotSame","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":530,"slug":"numberformat","name":"numberFormat","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"decimals","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"2"},{"name":"decimalSeparator","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'.'"},{"name":"thousandsSeparator","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"','"}],"return_type":[{"name":"NumberFormat","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":544,"slug":"oneach","name":"onEach","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"function","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"preserveKeys","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"}],"return_type":[{"name":"OnEach","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBFeGVjdXRlIGEgc2NhbGFyIGZ1bmN0aW9uIG9uIGVhY2ggZWxlbWVudCBvZiBhbiBhcnJheS9saXN0L21hcC9zdHJ1Y3R1cmUgY29sdW1uLgogICAgICogSW4gb3JkZXIgdG8gdXNlIHRoaXMgZnVuY3Rpb24sIHlvdSBuZWVkIHRvIHByb3ZpZGUgYSByZWZlcmVuY2UgdG8gdGhlICJlbGVtZW50IiB0aGF0IHdpbGwgYmUgdXNlZCBpbiB0aGUgZnVuY3Rpb24uCiAgICAgKgogICAgICogRXhhbXBsZTogJGRmLT53aXRoQ29sdW1uKCdhcnJheScsIHJlZignYXJyYXknKS0+b25FYWNoKHJlZignZWxlbWVudCcpLT5jYXN0KHR5cGVfc3RyaW5nKCkpKSkKICAgICAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":549,"slug":"or","name":"or","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"function","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Any","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":554,"slug":"ornot","name":"orNot","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"function","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Any","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":559,"slug":"plus","name":"plus","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"ref","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"exact","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"Plus","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":564,"slug":"power","name":"power","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"value","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"exact","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"Power","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":569,"slug":"prepend","name":"prepend","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"prefix","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Prepend","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":574,"slug":"regex","name":"regex","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"pattern","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"flags","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"0"},{"name":"offset","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"0"}],"return_type":[{"name":"Regex","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":579,"slug":"regexall","name":"regexAll","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"pattern","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"flags","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"0"},{"name":"offset","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"0"}],"return_type":[{"name":"RegexAll","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":584,"slug":"regexmatch","name":"regexMatch","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"pattern","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"flags","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"0"},{"name":"offset","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"0"}],"return_type":[{"name":"RegexMatch","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":592,"slug":"regexmatchall","name":"regexMatchAll","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"pattern","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"flags","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"0"},{"name":"offset","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"0"}],"return_type":[{"name":"RegexMatchAll","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":600,"slug":"regexreplace","name":"regexReplace","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"pattern","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"replacement","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"limit","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"RegexReplace","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":608,"slug":"repeat","name":"repeat","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"times","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Repeat","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":613,"slug":"reverse","name":"reverse","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"Reverse","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":618,"slug":"round","name":"round","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"precision","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"2"},{"name":"mode","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"1"}],"return_type":[{"name":"Round","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":623,"slug":"same","name":"same","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"value","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Same","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":628,"slug":"sanitize","name":"sanitize","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"placeholder","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'*'"},{"name":"skipCharacters","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Sanitize","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":635,"slug":"size","name":"size","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"Size","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":643,"slug":"slug","name":"slug","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"separator","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'-'"},{"name":"locale","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"symbolsMap","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Slug","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBAcGFyYW0gU2NhbGFyRnVuY3Rpb258bnVsbHxhcnJheTxhcnJheS1rZXksIG1peGVkPiAkc3ltYm9sc01hcAogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":651,"slug":"split","name":"split","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"separator","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"limit","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"9223372036854775807"}],"return_type":[{"name":"Split","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":656,"slug":"sprintf","name":"sprintf","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"params","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":true,"default_value":null}],"return_type":[{"name":"Sprintf","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":661,"slug":"startswith","name":"startsWith","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"needle","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"StartsWith","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":669,"slug":"stringafter","name":"stringAfter","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"needle","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"includeNeedle","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"StringAfter","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBSZXR1cm5zIHRoZSBjb250ZW50cyBmb3VuZCBhZnRlciB0aGUgZmlyc3Qgb2NjdXJyZW5jZSBvZiB0aGUgZ2l2ZW4gc3RyaW5nLgogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":677,"slug":"stringafterlast","name":"stringAfterLast","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"needle","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"includeNeedle","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"StringAfterLast","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBSZXR1cm5zIHRoZSBjb250ZW50cyBmb3VuZCBhZnRlciB0aGUgbGFzdCBvY2N1cnJlbmNlIG9mIHRoZSBnaXZlbiBzdHJpbmcuCiAgICAgKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":687,"slug":"stringbefore","name":"stringBefore","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"needle","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"includeNeedle","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"StringBefore","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBSZXR1cm5zIHRoZSBjb250ZW50cyBmb3VuZCBiZWZvcmUgdGhlIGZpcnN0IG9jY3VycmVuY2Ugb2YgdGhlIGdpdmVuIHN0cmluZy4KICAgICAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":697,"slug":"stringbeforelast","name":"stringBeforeLast","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"needle","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"includeNeedle","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"StringBeforeLast","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBSZXR1cm5zIHRoZSBjb250ZW50cyBmb3VuZCBiZWZvcmUgdGhlIGxhc3Qgb2NjdXJyZW5jZSBvZiB0aGUgZ2l2ZW4gc3RyaW5nLgogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":707,"slug":"stringcontainsany","name":"stringContainsAny","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"needles","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"StringContainsAny","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBAcGFyYW0gYXJyYXk8c3RyaW5nPnxTY2FsYXJGdW5jdGlvbiAkbmVlZGxlcwogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":712,"slug":"stringequalsto","name":"stringEqualsTo","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"string","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"StringEqualsTo","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":720,"slug":"stringfold","name":"stringFold","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"StringFold","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBSZXR1cm5zIGEgc3RyaW5nIHRoYXQgeW91IGNhbiB1c2UgaW4gY2FzZS1pbnNlbnNpdGl2ZSBjb21wYXJpc29ucy4KICAgICAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":725,"slug":"stringmatch","name":"stringMatch","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"pattern","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"StringMatch","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":730,"slug":"stringmatchall","name":"stringMatchAll","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"pattern","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"StringMatchAll","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":735,"slug":"stringnormalize","name":"stringNormalize","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"form","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"16"}],"return_type":[{"name":"StringNormalize","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":744,"slug":"stringstyle","name":"stringStyle","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"style","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"StringStyles","namespace":"Flow\\ETL\\String","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"StringStyle","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBDb3ZlcnQgc3RyaW5nIHRvIGEgc3R5bGUgZnJvbSBlbnVtIGxpc3QsIHBhc3NlZCBpbiBwYXJhbWV0ZXIuCiAgICAgKiBDYW4gYmUgc3RyaW5nICJ1cHBlciIgb3IgU3RyaW5nU3R5bGVzOjpVUFBFUiBmb3IgVXBwZXIgKGV4YW1wbGUpLgogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":752,"slug":"stringtitle","name":"stringTitle","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"allWords","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"StringTitle","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBDaGFuZ2VzIGFsbCBncmFwaGVtZXMvY29kZSBwb2ludHMgdG8gInRpdGxlIGNhc2UiLgogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":757,"slug":"stringwidth","name":"stringWidth","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"StringWidth","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":762,"slug":"strpad","name":"strPad","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"length","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"pad_string","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"' '"},{"name":"type","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"1"}],"return_type":[{"name":"StrPad","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":767,"slug":"strpadboth","name":"strPadBoth","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"length","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"pad_string","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"' '"}],"return_type":[{"name":"StrPad","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":772,"slug":"strpadleft","name":"strPadLeft","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"length","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"pad_string","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"' '"}],"return_type":[{"name":"StrPad","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":777,"slug":"strpadright","name":"strPadRight","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"length","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"pad_string","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"' '"}],"return_type":[{"name":"StrPad","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":786,"slug":"strreplace","name":"strReplace","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"search","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"replace","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"StrReplace","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBAcGFyYW0gYXJyYXk8c3RyaW5nPnxTY2FsYXJGdW5jdGlvbnxzdHJpbmcgJHNlYXJjaAogICAgICogQHBhcmFtIGFycmF5PHN0cmluZz58U2NhbGFyRnVuY3Rpb258c3RyaW5nICRyZXBsYWNlCiAgICAgKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":794,"slug":"todate","name":"toDate","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"format","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'Y-m-d\\\\TH:i:sP'"},{"name":"timeZone","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"DateTimeZone","namespace":"","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"DateTimeZone::..."}],"return_type":[{"name":"ToDate","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBAcGFyYW0gU2NhbGFyRnVuY3Rpb258c3RyaW5nICRmb3JtYXQgLSBjdXJyZW50IGZvcm1hdCBvZiB0aGUgZGF0ZSB0aGF0IHdpbGwgYmUgdXNlZCB0byBjcmVhdGUgRGF0ZVRpbWVJbW11dGFibGUgaW5zdGFuY2UKICAgICAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":805,"slug":"todatetime","name":"toDateTime","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"format","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'Y-m-d H:i:s'"},{"name":"timeZone","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"DateTimeZone","namespace":"","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"DateTimeZone::..."}],"return_type":[{"name":"ToDateTime","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBAcGFyYW0gU2NhbGFyRnVuY3Rpb258c3RyaW5nICRmb3JtYXQgLSBjdXJyZW50IGZvcm1hdCBvZiB0aGUgZGF0ZSB0aGF0IHdpbGwgYmUgdXNlZCB0byBjcmVhdGUgRGF0ZVRpbWVJbW11dGFibGUgaW5zdGFuY2UKICAgICAqIEBwYXJhbSBcRGF0ZVRpbWVab25lfFNjYWxhckZ1bmN0aW9uICR0aW1lWm9uZQogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":812,"slug":"trim","name":"trim","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"type","type":[{"name":"Type","namespace":"Flow\\ETL\\Function\\Trim","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Function\\Trim\\Type::..."},{"name":"characters","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"' \\t\\n\\r\\0\u000b'"}],"return_type":[{"name":"Trim","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":817,"slug":"truncate","name":"truncate","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"length","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"ellipsis","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'...'"}],"return_type":[{"name":"Truncate","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":822,"slug":"unicodelength","name":"unicodeLength","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"UnicodeLength","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":846,"slug":"unpack","name":"unpack","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"schema","type":[{"name":"Schema","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ArrayUnpack","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBVbnBhY2tzIGVhY2ggZWxlbWVudCBvZiBhbiBhcnJheSBpbnRvIGEgbmV3IGNvbHVtbiwgdXNpbmcgdGhlIGFycmF5IGtleSBhcyB0aGUgY29sdW1uIG5hbWUuCiAgICAgKgogICAgICogQmVmb3JlOgogICAgICogICArLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSsKICAgICAqICAgfGlkfCAgICAgICAgICAgICAgYXJyYXl8CiAgICAgKiAgICstLSstLS0tLS0tLS0tLS0tLS0tLS0tKwogICAgICogICB8IDF8eyJhIjoxLCJiIjoyLCJjIjozfXwKICAgICAqICAgfCAyfHsiZCI6NCwiZSI6NSwiZiI6Nn18CiAgICAgKiAgICstLSstLS0tLS0tLS0tLS0tLS0tLS0tKwogICAgICoKICAgICAqIEFmdGVyOgogICAgICogICArLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rCiAgICAgKiAgIHxpZHxhcnIuYnxhcnIuY3xhcnIuZHxhcnIuZXxhcnIuZnwKICAgICAqICAgKy0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKwogICAgICogICB8IDF8ICAgIDJ8ICAgIDN8ICAgICB8ICAgICB8ICAgICB8CiAgICAgKiAgIHwgMnwgICAgIHwgICAgIHwgICAgNHwgICAgNXwgICAgNnwKICAgICAqICAgKy0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKwogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":851,"slug":"upper","name":"upper","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"ToUpper","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":856,"slug":"wordwrap","name":"wordwrap","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"width","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"break","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'\\n'"},{"name":"cut","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"Wordwrap","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":864,"slug":"xpath","name":"xpath","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"string","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"XPath","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ResolvesFromChildren.php","start_line_in_file":12,"slug":"resolved","name":"resolved","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ResolvesFromChildren.php","start_line_in_file":23,"slug":"deterministic","name":"deterministic","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Flow.php","start_line_in_file":23,"slug":"setup","name":"setUp","class":"Flow\\ETL\\Flow","class_slug":"flow","parameters":[{"name":"config","type":[{"name":"ConfigBuilder","namespace":"Flow\\ETL\\Config","is_nullable":false,"is_variadic":false},{"name":"Config","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Flow.php","start_line_in_file":28,"slug":"extract","name":"extract","class":"Flow\\ETL\\Flow","class_slug":"flow","parameters":[{"name":"extractor","type":[{"name":"Extractor","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"DataFrame","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Flow.php","start_line_in_file":33,"slug":"from","name":"from","class":"Flow\\ETL\\Flow","class_slug":"flow","parameters":[{"name":"extractor","type":[{"name":"Extractor","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"DataFrame","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Flow.php","start_line_in_file":38,"slug":"process","name":"process","class":"Flow\\ETL\\Flow","class_slug":"flow","parameters":[{"name":"rows","type":[{"name":"Rows","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"DataFrame","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Flow.php","start_line_in_file":46,"slug":"read","name":"read","class":"Flow\\ETL\\Flow","class_slug":"flow","parameters":[{"name":"extractor","type":[{"name":"Extractor","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"DataFrame","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBBbGlhcyBmb3IgRmxvdzo6ZXh0cmFjdCBmdW5jdGlvbi4KICAgICAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":75,"slug":"aggregate","name":"aggregate","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"aggregations","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"algorithm","type":[{"name":"GroupByAlgorithmBuilder","namespace":"Flow\\ETL\\Config\\Grouping","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAbGF6eQogICAgICoKICAgICAqIEBwYXJhbSBBZ2dyZWdhdGlvbnMgJGFnZ3JlZ2F0aW9ucwogICAgICogQHBhcmFtIG51bGx8R3JvdXBCeUFsZ29yaXRobUJ1aWxkZXIgJGFsZ29yaXRobSBudWxsIGRlZmVycyB0byBjb25maWd1cmF0aW9uOyBhIGJ1aWxkZXIgcGlucyB0aGUKICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGdvcml0aG0gZm9yIHRoaXMgb3BlcmF0aW9uIGFuZCBza2lwcyBhbnkgYXV0b21hdGljIGNob2ljZQogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":99,"slug":"batchby","name":"batchBy","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"column","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"minSize","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBNZXJnZS9TcGxpdCBSb3dzIHlpZWxkZWQgYnkgRXh0cmFjdG9yIGludG8gYmF0Y2hlcyBidXQga2VlcCB0aG9zZSB3aXRoIGNvbW1vbiB2YWx1ZSBpbiBnaXZlbiBjb2x1bW4gdG9nZXRoZXIuCiAgICAgKiBUaGlzIHdvcmtzIHByb3Blcmx5IG9ubHkgb24gc29ydGVkIGRhdGFzZXRzLgogICAgICoKICAgICAqIFdoZW4gbWluU2l6ZSBpcyBub3QgcHJvdmlkZWQsIGJhdGNoZXMgd2lsbCBiZSBjcmVhdGVkIG9ubHkgd2hlbiB0aGVyZSBpcyBhIGNoYW5nZSBpbiB2YWx1ZSBvZiB0aGUgY29sdW1uLgogICAgICogV2hlbiBtaW5TaXplIGlzIHByb3ZpZGVkLCBiYXRjaGVzIHdpbGwgYmUgY3JlYXRlZCBvbmx5IHdoZW4gdGhlcmUgaXMgYSBjaGFuZ2UgaW4gdmFsdWUgb2YgdGhlIGNvbHVtbiBvcgogICAgICogd2hlbiB0aGVyZSBhcmUgYXQgbGVhc3QgbWluU2l6ZSByb3dzIGluIHRoZSBiYXRjaC4KICAgICAqCiAgICAgKiBAcGFyYW0gUmVmZXJlbmNlfHN0cmluZyAkY29sdW1uIC0gY29sdW1uIHRvIGdyb3VwIGJ5IChhbGwgcm93cyB3aXRoIHNhbWUgdmFsdWUgc3RheSB0b2dldGhlcikKICAgICAqIEBwYXJhbSBudWxsfGludDwxLCBtYXg+ICRtaW5TaXplIC0gb3B0aW9uYWwgbWluaW11bSByb3dzIHBlciBiYXRjaCBmb3IgZWZmaWNpZW5jeQogICAgICoKICAgICAqIEBsYXp5CiAgICAgKgogICAgICogQHRocm93cyBJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24KICAgICAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":119,"slug":"batchsize","name":"batchSize","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"size","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBNZXJnZS9TcGxpdCBSb3dzIHlpZWxkZWQgYnkgRXh0cmFjdG9yIGludG8gYmF0Y2hlcyBvZiBnaXZlbiBzaXplLgogICAgICogRm9yIGV4YW1wbGUsIHdoZW4gRXh0cmFjdG9yIGlzIHlpZWxkaW5nIG9uZSByb3cgYXQgdGltZSwgdGhpcyBtZXRob2Qgd2lsbCBtZXJnZSB0aGVtIGludG8gYmF0Y2hlcyBvZiBnaXZlbiBzaXplCiAgICAgKiBiZWZvcmUgcGFzc2luZyB0aGVtIHRvIHRoZSBuZXh0IHBpcGVsaW5lIGVsZW1lbnQuCiAgICAgKiBTaW1pbGFybHkgd2hlbiBFeHRyYWN0b3IgaXMgeWllbGRpbmcgYmF0Y2hlcyBvZiByb3dzLCB0aGlzIG1ldGhvZCB3aWxsIHNwbGl0IHRoZW0gaW50byBzbWFsbGVyIGJhdGNoZXMgb2YgZ2l2ZW4KICAgICAqIHNpemUuCiAgICAgKgogICAgICogSW4gb3JkZXIgdG8gbWVyZ2UgYWxsIFJvd3MgaW50byBhIHNpbmdsZSBiYXRjaCB1c2UgRGF0YUZyYW1lOjpjb2xsZWN0KCkgbWV0aG9kIG9yIHNldCBzaXplIHRvIC0xIG9yIDAuCiAgICAgKgogICAgICogQHBhcmFtIGludDwtMSwgbWF4PiAkc2l6ZQogICAgICoKICAgICAqIEBsYXp5CiAgICAgKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":151,"slug":"cache","name":"cache","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"id","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"cacheBatchSize","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"cache","type":[{"name":"Cache","namespace":"Flow\\ETL","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBTdGFydCBwcm9jZXNzaW5nIHJvd3MgdXAgdG8gdGhpcyBtb21lbnQgYW5kIHB1dCBlYWNoIGluc3RhbmNlIG9mIFJvd3MKICAgICAqIGludG8gcHJldmlvdXNseSBkZWZpbmVkIGNhY2hlLgogICAgICogQ2FjaGUgdHlwZSBjYW4gYmUgc2V0IHRocm91Z2ggQ29uZmlnQnVpbGRlci4KICAgICAqIEJ5IGRlZmF1bHQgZXZlcnl0aGluZyBpcyBjYWNoZWQgaW4gc3lzdGVtIHRtcCBkaXIuCiAgICAgKgogICAgICogSW1wb3J0YW50OiBjYWNoZSBiYXRjaCBzaXplIG1pZ2h0IHNpZ25pZmljYW50bHkgaW1wcm92ZSBwZXJmb3JtYW5jZSB3aGVuIHByb2Nlc3NpbmcgbGFyZ2UgYW1vdW50IG9mIHJvd3MuCiAgICAgKiBMYXJnZXIgYmF0Y2ggc2l6ZSB3aWxsIGluY3JlYXNlIG1lbW9yeSBjb25zdW1wdGlvbiBidXQgd2lsbCByZWR1Y2UgbnVtYmVyIG9mIElPIG9wZXJhdGlvbnMuCiAgICAgKiBXaGVuIG5vdCBzZXQsIHRoZSBiYXRjaCBzaXplIGlzIHRha2VuIGZyb20gdGhlIGxhc3QgRGF0YUZyYW1lOjpiYXRjaFNpemUoKSBjYWxsLgogICAgICoKICAgICAqIEBsYXp5CiAgICAgKgogICAgICogQHBhcmFtIG51bGx8c3RyaW5nICRpZAogICAgICogQHBhcmFtIG51bGx8Q2FjaGUgJGNhY2hlIHJlYWRzIG9mIHRoaXMgY2FjaGUgbXVzdCBwYXNzIHRoZSBzYW1lIGluc3RhbmNlIHRvIGZyb21fY2FjaGUoKQogICAgICoKICAgICAqIEB0aHJvd3MgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uCiAgICAgKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":168,"slug":"collect","name":"collect","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBCZWZvcmUgdHJhbnNmb3JtaW5nIHJvd3MsIGNvbGxlY3QgdGhlbSBhbmQgbWVyZ2UgaW50byBzaW5nbGUgUm93cyBpbnN0YW5jZS4KICAgICAqIFRoaXMgbWlnaHQgbGVhZCB0byBtZW1vcnkgaXNzdWVzIHdoZW4gcHJvY2Vzc2luZyBsYXJnZSBhbW91bnQgb2Ygcm93cywgdXNlIHdpdGggY2F1dGlvbi4KICAgICAqCiAgICAgKiBAbGF6eQogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":187,"slug":"collectrefs","name":"collectRefs","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"references","type":[{"name":"References","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBUaGlzIG1ldGhvZCBhbGxvd3MgdG8gY29sbGVjdCByZWZlcmVuY2VzIHRvIGFsbCBjb2x1bW5zIHVzZWQgaW4gdGhpcyBwaXBlbGluZS4KICAgICAqCiAgICAgKiBgYGBwaHAKICAgICAqIChuZXcgRmxvdygpKQogICAgICogICAtPnJlYWQoRnJvbTo6Y2hhaW4oKSkKICAgICAqICAgLT5jb2xsZWN0UmVmcygkcmVmcyA9IHJlZnMoKSkKICAgICAqICAgLT5ydW4oKTsKICAgICAqIGBgYAogICAgICoKICAgICAqIEBsYXp5CiAgICAgKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":194,"slug":"constrain","name":"constrain","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"constraint","type":[{"name":"Constraint","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"constraints","type":[{"name":"Constraint","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":205,"slug":"count","name":"count","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[],"return_type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAdHJpZ2dlcgogICAgICogUmV0dXJuIHRvdGFsIGNvdW50IG9mIHJvd3MgcHJvY2Vzc2VkIGJ5IHRoaXMgcGlwZWxpbmUuCiAgICAgKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":225,"slug":"crossjoin","name":"crossJoin","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"dataFrame","type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"prefix","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"''"}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAbGF6eQogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":242,"slug":"display","name":"display","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"limit","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"20"},{"name":"truncate","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"20"},{"name":"formatter","type":[{"name":"Formatter","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Formatter\\AsciiTableFormatter::..."}],"return_type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAcGFyYW0gaW50ICRsaW1pdCBtYXhpbXVtIG51bWJlcnMgb2Ygcm93cyB0byBkaXNwbGF5CiAgICAgKiBAcGFyYW0gYm9vbHxpbnQgJHRydW5jYXRlIGZhbHNlIG9yIGlmIHNldCB0byAwIGNvbHVtbnMgYXJlIG5vdCB0cnVuY2F0ZWQsIG90aGVyd2lzZSBkZWZhdWx0IHRydW5jYXRlIHRvIDIwCiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJhY3RlcnMKICAgICAqIEBwYXJhbSBGb3JtYXR0ZXIgJGZvcm1hdHRlcgogICAgICoKICAgICAqIEB0cmlnZ2VyCiAgICAgKgogICAgICogQHRocm93cyBJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24KICAgICAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":269,"slug":"drop","name":"drop","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"columns","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBEcm9wIGdpdmVuIGNvbHVtbnMuCiAgICAgKgogICAgICogQGxhenkKICAgICAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":283,"slug":"dropduplicates","name":"dropDuplicates","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"columns","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAcGFyYW0gUmVmZXJlbmNlfHN0cmluZyAuLi4kY29sdW1ucwogICAgICoKICAgICAqIEBsYXp5CiAgICAgKgogICAgICogQHJldHVybiAkdGhpcwogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":290,"slug":"duplicaterow","name":"duplicateRow","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"condition","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null},{"name":"columns","type":[{"name":"WithColumn","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":309,"slug":"fetch","name":"fetch","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"limit","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Rows","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBCZSBhd2FyZSB0aGF0IGZldGNoIGlzIG5vdCBtZW1vcnkgc2FmZSBhbmQgd2lsbCBsb2FkIGFsbCByb3dzIGludG8gbWVtb3J5LgogICAgICogSWYgeW91IHdhbnQgdG8gc2FmZWx5IGl0ZXJhdGUgb3ZlciBSb3dzIHVzZSBvZSBvZiB0aGUgZm9sbG93aW5nIG1ldGhvZHM6LgogICAgICoKICAgICAqIERhdGFGcmFtZTo6Z2V0KCkgOiBcR2VuZXJhdG9yCiAgICAgKiBEYXRhRnJhbWU6OmdldEFzQXJyYXkoKSA6IFxHZW5lcmF0b3IKICAgICAqIERhdGFGcmFtZTo6Z2V0RWFjaEFzQXJyYXkoKSA6IFxHZW5lcmF0b3IKICAgICAqCiAgICAgKiBAdHJpZ2dlcgogICAgICoKICAgICAqIEB0aHJvd3MgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uCiAgICAgKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":326,"slug":"filter","name":"filter","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"function","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAbGF6eQogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":338,"slug":"filters","name":"filters","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"functions","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAbGF6eQogICAgICoKICAgICAqIEBwYXJhbSBhcnJheTxTY2FsYXJGdW5jdGlvbj4gJGZ1bmN0aW9ucwogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":352,"slug":"foreach","name":"forEach","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"callback","type":[{"name":"callable","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"void","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAdHJpZ2dlcgogICAgICoKICAgICAqIEBwYXJhbSBudWxsfGNhbGxhYmxlKFJvd3MgJHJvd3MsIEZsb3dDb250ZXh0ICRjb250ZXh0KSA6IHZvaWQgJGNhbGxiYWNrCiAgICAgKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":373,"slug":"get","name":"get","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[],"return_type":[{"name":"Generator","namespace":"","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBZaWVsZHMgZWFjaCByb3cgYXMgYW4gaW5zdGFuY2Ugb2YgUm93cy4KICAgICAqCiAgICAgKiBAdHJpZ2dlcgogICAgICoKICAgICAqIEByZXR1cm4gXEdlbmVyYXRvcjxSb3dzPgogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":392,"slug":"getasarray","name":"getAsArray","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[],"return_type":[{"name":"Generator","namespace":"","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBZaWVsZHMgZWFjaCByb3cgYXMgYW4gYXJyYXkuCiAgICAgKgogICAgICogQHRyaWdnZXIKICAgICAqCiAgICAgKiBAcmV0dXJuIFxHZW5lcmF0b3I8YXJyYXk8YXJyYXk8bWl4ZWQ+Pj4KICAgICAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":411,"slug":"geteachasarray","name":"getEachAsArray","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[],"return_type":[{"name":"Generator","namespace":"","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBZaWVsZCBlYWNoIHJvdyBhcyBhbiBhcnJheS4KICAgICAqCiAgICAgKiBAdHJpZ2dlcgogICAgICoKICAgICAqIEByZXR1cm4gXEdlbmVyYXRvcjxhcnJheTxtaXhlZD4+CiAgICAgKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":432,"slug":"groupby","name":"groupBy","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"columns","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"algorithm","type":[{"name":"GroupByAlgorithmBuilder","namespace":"Flow\\ETL\\Config\\Grouping","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"GroupedDataFrame","namespace":"Flow\\ETL\\DataFrame","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAbGF6eQogICAgICoKICAgICAqIEBwYXJhbSBHcm91cEJ5UmVmZXJlbmNlc3xSZWZlcmVuY2V8c3RyaW5nICRjb2x1bW5zIGEgc2luZ2xlIGNvbHVtbiBpcyBncm91cGVkIGJ5IG9uIGl0cyBvd24KICAgICAqIEBwYXJhbSBudWxsfEdyb3VwQnlBbGdvcml0aG1CdWlsZGVyICRhbGdvcml0aG0gbnVsbCBkZWZlcnMgdG8gY29uZmlndXJhdGlvbjsgYSBidWlsZGVyIHBpbnMgdGhlCiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxnb3JpdGhtIGZvciB0aGlzIG9wZXJhdGlvbiBhbmQgc2tpcHMgYW55IGF1dG9tYXRpYyBjaG9pY2UKICAgICAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":451,"slug":"join","name":"join","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"dataFrame","type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"on","type":[{"name":"Expression","namespace":"Flow\\ETL\\Join","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"type","type":[{"name":"Join","namespace":"Flow\\ETL\\Join","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Join\\Join::..."},{"name":"algorithm","type":[{"name":"JoinAlgorithmBuilder","namespace":"Flow\\ETL\\Config\\Join","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAbGF6eQogICAgICoKICAgICAqIEBwYXJhbSBudWxsfEpvaW5BbGdvcml0aG1CdWlsZGVyICRhbGdvcml0aG0gbnVsbCBkZWZlcnMgdG8gY29uZmlndXJhdGlvbjsgYSBidWlsZGVyIHBpbnMgdGhlIGFsZ29yaXRobQogICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciB0aGlzIG9wZXJhdGlvbiBhbmQgc2tpcHMgYW55IGF1dG9tYXRpYyBjaG9pY2UKICAgICAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":479,"slug":"joineach","name":"joinEach","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"factory","type":[{"name":"DataFrameFactory","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"on","type":[{"name":"Expression","namespace":"Flow\\ETL\\Join","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"type","type":[{"name":"Join","namespace":"Flow\\ETL\\Join","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Join\\Join::..."}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBKb2lucyBpbiBtZW1vcnkgcGVyIGJhdGNoOyBpdCBpcyBub3QgZ292ZXJuZWQgYnkgdGhlIGpvaW4gYWxnb3JpdGhtIGFuZCB0YWtlcyBubyBhbGdvcml0aG0gb3ZlcnJpZGUuCiAgICAgKgogICAgICogQGxhenkKICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nfEpvaW4gJHR5cGUKICAgICAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":495,"slug":"limit","name":"limit","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"limit","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAbGF6eQogICAgICoKICAgICAqIEB0aHJvd3MgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uCiAgICAgKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":509,"slug":"load","name":"load","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"sink","type":[{"name":"Loader","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false},{"name":"Sink","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAbGF6eQogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":555,"slug":"match","name":"match","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"schema","type":[{"name":"Schema","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"validator","type":[{"name":"SchemaValidator","namespace":"Flow\\ETL","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAbGF6eQogICAgICoKICAgICAqIEBwYXJhbSBudWxsfFNjaGVtYVZhbGlkYXRvciAkdmFsaWRhdG9yIC0gd2hlbiBudWxsLCBTdHJpY3RWYWxpZGF0b3IgZ2V0cyBpbml0aWFsaXplZAogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":576,"slug":"offset","name":"offset","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"offset","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBTa2lwIGdpdmVuIG51bWJlciBvZiByb3dzIGZyb20gdGhlIGJlZ2lubmluZyBvZiB0aGUgZGF0YXNldC4KICAgICAqIFdoZW4gJG9mZnNldCBpcyBudWxsLCBub3RoaW5nIGhhcHBlbnMgKG5vIHJvd3MgYXJlIHNraXBwZWQpLgogICAgICoKICAgICAqIFBlcmZvcm1hbmNlIE5vdGU6IERhdGFGcmFtZSBtdXN0IGl0ZXJhdGUgdGhyb3VnaCBhbmQgcHJvY2VzcyBhbGwgc2tpcHBlZCByb3dzCiAgICAgKiB0byByZWFjaCB0aGUgb2Zmc2V0IHBvc2l0aW9uLiBGb3IgbGFyZ2Ugb2Zmc2V0cywgdGhpcyBjYW4gaW1wYWN0IHBlcmZvcm1hbmNlCiAgICAgKiBhcyB0aGUgZGF0YSBzb3VyY2Ugc3RpbGwgbmVlZHMgdG8gYmUgcmVhZCBhbmQgcHJvY2Vzc2VkIHVwIHRvIHRoZSBvZmZzZXQgcG9pbnQuCiAgICAgKgogICAgICogQHBhcmFtID9pbnQ8MCwgbWF4PiAkb2Zmc2V0CiAgICAgKgogICAgICogQGxhenkKICAgICAqCiAgICAgKiBAdGhyb3dzIEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbgogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":590,"slug":"onerror","name":"onError","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"handler","type":[{"name":"ErrorHandler","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAbGF6eQogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":602,"slug":"repartition","name":"repartition","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"column","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"columns","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAbGF6eQogICAgICogU2h1ZmZsZXMgdGhlIHN0cmVhbSBzbyBldmVyeSByb3cgc2hhcmluZyB0aGUgZ2l2ZW4gY29sdW1ucyBhcnJpdmVzIGluIG9uZSBiYXRjaC4gSXQgZG9lcyBub3QKICAgICAqIHdyaXRlIGRpcmVjdG9yaWVzIC0gdGhhdCBpcyBkZWNsYXJlZCBvbiB0aGUgbG9hZGVyLCBgdG9fY3N2KC4uLiktPnBhcnRpdGlvbkJ5KCdyZWdpb24nKWAuCiAgICAgKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":614,"slug":"printrows","name":"printRows","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"limit","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"20"},{"name":"truncate","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"20"},{"name":"formatter","type":[{"name":"Formatter","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Formatter\\AsciiTableFormatter::..."}],"return_type":[{"name":"void","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAdHJpZ2dlcgogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":634,"slug":"explain","name":"explain","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"trigger","type":[{"name":"Trigger","namespace":"Flow\\ETL\\Plan","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Plan\\Trigger::..."}],"return_type":[{"name":"Plan","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBUaGUgcGxhbiAkdHJpZ2dlciB3b3VsZCBydW4gb3ZlciB0aGlzIGZyYW1lLCBmcm96ZW46IGxhdGVyIHZlcmJzIG9uIHRoaXMgZnJhbWUgZG8gbm90IHJlYWNoIGl0LiBUaGUgZGVmYXVsdAogICAgICogYWRkcyBubyBjb25zdW1lciBvZiBpdHMgb3duIC0gaXQgZHJhd3MgdGhlIGZyYW1lIGFzIGJ1aWx0LCBpdHMgY2hhaW4gYW5kIGl0cyBzaW5rcy4gdG9TdHJpbmcoKSBwcmludHMgaXQgYXMgYQogICAgICogdHJlZS4gQW5zd2VycyBmcm9tIHRoZSBwbGFuIHdpdGhvdXQgcmVhZGluZyBhIHJvdy4KICAgICAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":644,"slug":"printschema","name":"printSchema","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"formatter","type":[{"name":"SchemaFormatter","namespace":"Flow\\ETL\\Schema","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Row\\Formatter\\ASCIISchemaFormatter::..."}],"return_type":[{"name":"void","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAbGF6eQogICAgICoKICAgICAqIEB0aHJvd3MgU2NoZW1hTm90RGVyaXZhYmxlRXhjZXB0aW9uCiAgICAgKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":652,"slug":"rename","name":"rename","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"from","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"to","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAbGF6eQogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":659,"slug":"renameeach","name":"renameEach","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"strategies","type":[{"name":"RenameColumnStrategy","namespace":"Flow\\ETL\\Transformer\\Rename","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":670,"slug":"rows","name":"rows","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"transformer","type":[{"name":"Transformer","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false},{"name":"Transformation","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAbGF6eQogICAgICogQWxpYXMgZm9yIEVUTDo6dHJhbnNmb3JtIG1ldGhvZC4KICAgICAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":687,"slug":"run","name":"run","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"analyze","type":[{"name":"Analyze","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"Report","namespace":"Flow\\ETL\\Dataset","is_nullable":true,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAdHJpZ2dlcgogICAgICoKICAgICAqIFdoZW4gYW5hbHl6aW5nIHBpcGVsaW5lIGV4ZWN1dGlvbiB3ZSBjYW4gY2hvc2UgdG8gY29sbGVjdCB2YXJpb3VzIG1ldHJpY3MgdGhyb3VnaCBhbmFseXplKCktPndpdGgqKCkgbWV0aG9kCiAgICAgKgogICAgICogLSBjb2x1bW4gc3RhdGlzdGljcyAtIGFuYWx5emUoKS0+d2l0aENvbHVtblN0YXRpc3RpY3MoKQogICAgICogLSBzY2hlbWEgLSBhbmFseXplKCktPndpdGhTY2hlbWEoKQogICAgICoKICAgICAqIEBwYXJhbSBBbmFseXplfGJvb2wgJGFuYWx5emUgLSB3aGVuIHNldCBydW4gd2lsbCByZXR1cm4gUmVwb3J0CiAgICAgKgogICAgICogQHJldHVybiAoJGFuYWx5emUgaXMgQW5hbHl6ZXx0cnVlID8gUmVwb3J0IDogbnVsbCkKICAgICAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":715,"slug":"schema","name":"schema","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[],"return_type":[{"name":"Schema","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAbGF6eQogICAgICoKICAgICAqIEB0aHJvd3MgU2NoZW1hTm90RGVyaXZhYmxlRXhjZXB0aW9uCiAgICAgKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":728,"slug":"select","name":"select","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"columns","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAbGF6eQogICAgICogS2VlcCBvbmx5IGdpdmVuIGNvbHVtbnMuCiAgICAgKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":742,"slug":"sortby","name":"sortBy","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"columns","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"algorithm","type":[{"name":"SortAlgorithmBuilder","namespace":"Flow\\ETL\\Config\\Sort","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAbGF6eQogICAgICoKICAgICAqIEBwYXJhbSBSZWZlcmVuY2V8U29ydFJlZmVyZW5jZXN8c3RyaW5nICRjb2x1bW5zIGEgc2luZ2xlIGNvbHVtbiBpcyBzb3J0ZWQgYnkgb24gaXRzIG93bgogICAgICogQHBhcmFtIG51bGx8U29ydEFsZ29yaXRobUJ1aWxkZXIgJGFsZ29yaXRobSBudWxsIGRlZmVycyB0byBjb25maWd1cmF0aW9uOyBhIGJ1aWxkZXIgcGlucyB0aGUgYWxnb3JpdGhtCiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIHRoaXMgb3BlcmF0aW9uIGFuZCBza2lwcyBhbnkgYXV0b21hdGljIGNob2ljZQogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":756,"slug":"transform","name":"transform","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"transformer","type":[{"name":"Transformer","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false},{"name":"Transformation","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false},{"name":"Transformations","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false},{"name":"WithColumn","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBBbGlhcyBmb3IgRGF0YUZyYW1lOjp3aXRoKCkuCiAgICAgKgogICAgICogQGxhenkKICAgICAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":767,"slug":"until","name":"until","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"function","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBUaGUgZGlmZmVyZW5jZSBiZXR3ZWVuIGZpbHRlciBhbmQgdW50aWwgaXMgdGhhdCBmaWx0ZXIgd2lsbCBrZWVwIGZpbHRlcmluZyByb3dzIHVudGlsIGV4dHJhY3RvcnMgZmluaXNoIHlpZWxkaW5nCiAgICAgKiByb3dzLiBVbnRpbCB3aWxsIHNlbmQgYSBTVE9QIHNpZ25hbCB0byB0aGUgRXh0cmFjdG9yIHdoZW4gdGhlIGNvbmRpdGlvbiBpcyBub3QgbWV0LgogICAgICoKICAgICAqIEBsYXp5CiAgICAgKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":781,"slug":"void","name":"void","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAbGF6eQogICAgICogVGhpcyBtZXRob2QgaXMgdXNlZnVsIG1vc3RseSBpbiBkZXZlbG9wbWVudCB3aGVuCiAgICAgKiB5b3Ugd2FudCB0byBwYXVzZSBwcm9jZXNzaW5nIGF0IGNlcnRhaW4gbW9tZW50IHdpdGhvdXQKICAgICAqIHJlbW92aW5nIGNvZGUuIEFsbCBvcGVyYXRpb25zIHdpbGwgZ2V0IHByb2Nlc3NlZCB1cCB0byB0aGlzIHBvaW50LAogICAgICogZnJvbSBoZXJlIG5vIHJvd3MgYXJlIHBhc3NlZCBmb3J3YXJkLgogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":791,"slug":"with","name":"with","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"transformer","type":[{"name":"Transformer","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false},{"name":"Transformation","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false},{"name":"Transformations","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false},{"name":"WithColumn","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAbGF6eQogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":819,"slug":"withcolumn","name":"withColumn","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"column","type":[{"name":"Definition","namespace":"Flow\\ETL\\Schema","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"reference","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"WindowFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAcGFyYW0gRGVmaW5pdGlvbjxtaXhlZD58c3RyaW5nICRjb2x1bW4KICAgICAqCiAgICAgKiBAbGF6eQogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":835,"slug":"withcolumns","name":"withColumns","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"references","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAbGF6eQogICAgICoKICAgICAqIEBwYXJhbSBhcnJheTxpbnQsIFdpdGhDb2x1bW4+fGFycmF5PHN0cmluZywgU2NhbGFyRnVuY3Rpb258V2luZG93RnVuY3Rpb258V2l0aENvbHVtbj4gJHJlZmVyZW5jZXMKICAgICAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":855,"slug":"withentries","name":"withEntries","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"references","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAZGVwcmVjYXRlZCBVc2Uge0BzZWUgRGF0YUZyYW1lOjp3aXRoQ29sdW1ucygpfSBpbnN0ZWFkLgogICAgICoKICAgICAqIEBsYXp5CiAgICAgKgogICAgICogQHBhcmFtIGFycmF5PGludCwgV2l0aENvbHVtbj58YXJyYXk8c3RyaW5nLCBTY2FsYXJGdW5jdGlvbnxXaW5kb3dGdW5jdGlvbnxXaXRoQ29sdW1uPiAkcmVmZXJlbmNlcwogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":867,"slug":"withentry","name":"withEntry","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"entry","type":[{"name":"Definition","namespace":"Flow\\ETL\\Schema","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"reference","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"WindowFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAZGVwcmVjYXRlZCBVc2Uge0BzZWUgRGF0YUZyYW1lOjp3aXRoQ29sdW1uKCl9IGluc3RlYWQuCiAgICAgKgogICAgICogQHBhcmFtIERlZmluaXRpb248bWl4ZWQ+fHN0cmluZyAkZW50cnkKICAgICAqCiAgICAgKiBAbGF6eQogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":876,"slug":"write","name":"write","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"sink","type":[{"name":"Loader","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false},{"name":"Sink","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAbGF6eQogICAgICogQWxpYXMgZm9yIEVUTDo6bG9hZCBmdW5jdGlvbi4KICAgICAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame\/GroupedDataFrame.php","start_line_in_file":21,"slug":"aggregate","name":"aggregate","class":"Flow\\ETL\\DataFrame\\GroupedDataFrame","class_slug":"groupeddataframe","parameters":[{"name":"aggregations","type":[{"name":"AggregatingFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"DataFrame","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame\/GroupedDataFrame.php","start_line_in_file":28,"slug":"pivot","name":"pivot","class":"Flow\\ETL\\DataFrame\\GroupedDataFrame","class_slug":"groupeddataframe","parameters":[{"name":"ref","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"values","type":[{"name":"PivotValues","namespace":"Flow\\ETL\\GroupBy","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":null}] \ No newline at end of file diff --git a/web/landing/resources/dsl.json b/web/landing/resources/dsl.json index 63262bed0a..cec6ce8998 100644 --- a/web/landing/resources/dsl.json +++ b/web/landing/resources/dsl.json @@ -1 +1 @@ -[{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":276,"slug":"df","name":"df","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"config","type":[{"name":"Config","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false},{"name":"ConfigBuilder","namespace":"Flow\\ETL\\Config","is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Flow","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}},{"name":"DocumentationExample","namespace":"Flow\\Documentation\\Attribute","arguments":{"topic":"reading","example":"data_frame"}},{"name":"DocumentationExample","namespace":"Flow\\Documentation\\Attribute","arguments":{"topic":"writing","example":"overwrite"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEFsaWFzIGZvciBkYXRhX2ZyYW1lKCkgOiBGbG93LgogKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":284,"slug":"data-frame","name":"data_frame","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"config","type":[{"name":"Config","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false},{"name":"ConfigBuilder","namespace":"Flow\\ETL\\Config","is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Flow","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}},{"name":"DocumentationExample","namespace":"Flow\\Documentation\\Attribute","arguments":{"topic":"reading","example":"data_frame"}},{"name":"DocumentationExample","namespace":"Flow\\Documentation\\Attribute","arguments":{"topic":"writing","example":"overwrite"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":290,"slug":"telemetry-options","name":"telemetry_options","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"trace_loading","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"trace_transformations","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"trace_cache","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"collect_metrics","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"TelemetryOptions","namespace":"Flow\\ETL\\Config\\Telemetry","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":302,"slug":"from-rows","name":"from_rows","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"rows","type":[{"name":"Rows","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"RowsExtractor","namespace":"Flow\\ETL\\Extractor","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"EXTRACTOR"}},{"name":"DocumentationExample","namespace":"Flow\\Documentation\\Attribute","arguments":{"topic":"reading","example":"data_frame"}},{"name":"DocumentationExample","namespace":"Flow\\Documentation\\Attribute","arguments":{"topic":"writing","example":"overwrite"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":309,"slug":"from-path-partitions","name":"from_path_partitions","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"path","type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"filesystem","type":[{"name":"Filesystem","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Filesystem\\Local\\NativeLocalFilesystem::..."}],"return_type":[{"name":"PathPartitionsExtractor","namespace":"Flow\\ETL\\Extractor","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"EXTRACTOR"}},{"name":"DocumentationExample","namespace":"Flow\\Documentation\\Attribute","arguments":{"topic":"partitioning","example":"path_partitions"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":325,"slug":"from-array","name":"from_array","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"array","type":[{"name":"iterable","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"schema","type":[{"name":"Schema","namespace":"Flow\\ETL","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"filesystem","type":[{"name":"Filesystem","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Filesystem\\Local\\NativeLocalFilesystem::..."},{"name":"spillRoot","type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"ArrayExtractor","namespace":"Flow\\ETL\\Extractor","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"EXTRACTOR"}},{"name":"DocumentationExample","namespace":"Flow\\Documentation\\Attribute","arguments":{"topic":"reading","example":"array"}},{"name":"DocumentationExample","namespace":"Flow\\Documentation\\Attribute","arguments":{"topic":"reading","example":"data_frame"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBpdGVyYWJsZTxhcnJheTxtaXhlZD4+ICRhcnJheQogKiBAcGFyYW0gbnVsbHxTY2hlbWEgJHNjaGVtYSAtIEBkZXByZWNhdGVkIHVzZSB3aXRoU2NoZW1hKCkgbWV0aG9kIGluc3RlYWQKICogQHBhcmFtIG51bGx8UGF0aCAkc3BpbGxSb290IC0gd2hlcmUgYSBub24tYXJyYXkgJGFycmF5IGlzIHNwaWxsZWQgd2hpbGUgaXQgaXMgZGVzY3JpYmVkOyBudWxsIHJlc29sdmVzIHRvCiAqICAgICAgICAgICAgICAgICAgICAgICAgICAkZmlsZXN5c3RlbS0+Z2V0U3lzdGVtVG1wRGlyKCkgYW5kIG9ubHkgb24gdGhhdCBwYXRoCiAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":346,"slug":"from-cache","name":"from_cache","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"id","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"fallback_extractor","type":[{"name":"Extractor","namespace":"Flow\\ETL","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"clear","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"cache","type":[{"name":"Cache","namespace":"Flow\\ETL","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"CacheExtractor","namespace":"Flow\\ETL\\Extractor","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"EXTRACTOR"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBzdHJpbmcgJGlkIC0gY2FjaGUgaWQgZnJvbSB3aGljaCBkYXRhIHdpbGwgYmUgZXh0cmFjdGVkCiAqIEBwYXJhbSBudWxsfEV4dHJhY3RvciAkZmFsbGJhY2tfZXh0cmFjdG9yIC0gZXh0cmFjdG9yIHRoYXQgd2lsbCBiZSB1c2VkIHdoZW4gY2FjaGUgaXMgZW1wdHkgLSBAZGVwcmVjYXRlZCB1c2Ugd2l0aEZhbGxiYWNrRXh0cmFjdG9yKCkgbWV0aG9kIGluc3RlYWQKICogQHBhcmFtIGJvb2wgJGNsZWFyIC0gY2xlYXIgY2FjaGUgYWZ0ZXIgZXh0cmFjdGlvbiAtIEBkZXByZWNhdGVkIHVzZSB3aXRoQ2xlYXJPbkZpbmlzaCgpIG1ldGhvZCBpbnN0ZWFkCiAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":366,"slug":"from-all","name":"from_all","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"extractors","type":[{"name":"Extractor","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"ChainExtractor","namespace":"Flow\\ETL\\Extractor","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"EXTRACTOR"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":372,"slug":"from-memory","name":"from_memory","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"memory","type":[{"name":"Memory","namespace":"Flow\\ETL\\Memory","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"MemoryExtractor","namespace":"Flow\\ETL\\Extractor","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"EXTRACTOR"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":378,"slug":"files","name":"files","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"directory","type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"filesystem","type":[{"name":"Filesystem","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Filesystem\\Local\\NativeLocalFilesystem::..."}],"return_type":[{"name":"FilesExtractor","namespace":"Flow\\ETL\\Extractor","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"EXTRACTOR"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":384,"slug":"filesystem-cache","name":"filesystem_cache","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"serializer","type":[{"name":"Serializer","namespace":"Flow\\Serializer","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"cache_dir","type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"filesystem","type":[{"name":"Filesystem","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Filesystem\\Local\\NativeLocalFilesystem::..."}],"return_type":[{"name":"FilesystemCache","namespace":"Flow\\ETL\\Cache\\Implementation","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":396,"slug":"batched-by","name":"batched_by","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"extractor","type":[{"name":"Extractor","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"column","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"min_size","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"BatchByExtractor","namespace":"Flow\\ETL\\Extractor","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"EXTRACTOR"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBudWxsfGludDwxLCBtYXg+ICRtaW5fc2l6ZQogKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":410,"slug":"batches","name":"batches","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"extractor","type":[{"name":"Extractor","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"size","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"BatchExtractor","namespace":"Flow\\ETL\\Extractor","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"EXTRACTOR"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBpbnQ8MSwgbWF4PiAkc2l6ZQogKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":416,"slug":"from-data-frame","name":"from_data_frame","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"data_frame","type":[{"name":"DataFrame","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"DataFrameExtractor","namespace":"Flow\\ETL\\Extractor","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"EXTRACTOR"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":422,"slug":"from-sequence-date-period","name":"from_sequence_date_period","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"entry_name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"start","type":[{"name":"DateTimeInterface","namespace":"","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"interval","type":[{"name":"DateInterval","namespace":"","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"end","type":[{"name":"DateTimeInterface","namespace":"","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"options","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"0"}],"return_type":[{"name":"SequenceExtractor","namespace":"Flow\\ETL\\Extractor","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"EXTRACTOR"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":436,"slug":"from-sequence-date-period-recurrences","name":"from_sequence_date_period_recurrences","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"entry_name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"start","type":[{"name":"DateTimeInterface","namespace":"","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"interval","type":[{"name":"DateInterval","namespace":"","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"recurrences","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"options","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"0"}],"return_type":[{"name":"SequenceExtractor","namespace":"Flow\\ETL\\Extractor","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"EXTRACTOR"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":450,"slug":"from-sequence-number","name":"from_sequence_number","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"entry_name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"start","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"end","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"step","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"1"}],"return_type":[{"name":"SequenceExtractor","namespace":"Flow\\ETL\\Extractor","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"EXTRACTOR"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":460,"slug":"to-memory","name":"to_memory","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"memory","type":[{"name":"Memory","namespace":"Flow\\ETL\\Memory","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"MemoryLoader","namespace":"Flow\\ETL\\Loader","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"LOADER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":474,"slug":"to-array","name":"to_array","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"array","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ArrayLoader","namespace":"Flow\\ETL\\Loader","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"LOADER"}},{"name":"DocumentationExample","namespace":"Flow\\Documentation\\Attribute","arguments":{"topic":"writing","example":"array"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENvbnZlcnQgcm93cyB0byBhbiBhcnJheSBhbmQgc3RvcmUgdGhlbSBpbiBwYXNzZWQgYXJyYXkgdmFyaWFibGUuCiAqCiAqIEBwYXJhbSBhcnJheTxhcnJheS1rZXksIG1peGVkPiAkYXJyYXkKICoKICogQHBhcmFtLW91dCBhcnJheTxhcnJheTxtaXhlZD4+ICRhcnJheQogKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":482,"slug":"to-output","name":"to_output","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"truncate","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"20"},{"name":"output","type":[{"name":"Output","namespace":"Flow\\ETL\\Loader\\StreamLoader","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Loader\\StreamLoader\\Output::..."},{"name":"formatter","type":[{"name":"Formatter","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Formatter\\AsciiTableFormatter::..."},{"name":"schemaFormatter","type":[{"name":"SchemaFormatter","namespace":"Flow\\ETL\\Schema","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Row\\Formatter\\ASCIISchemaFormatter::..."}],"return_type":[{"name":"StreamLoader","namespace":"Flow\\ETL\\Loader","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"LOADER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":492,"slug":"to-stderr","name":"to_stderr","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"truncate","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"20"},{"name":"output","type":[{"name":"Output","namespace":"Flow\\ETL\\Loader\\StreamLoader","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Loader\\StreamLoader\\Output::..."},{"name":"formatter","type":[{"name":"Formatter","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Formatter\\AsciiTableFormatter::..."},{"name":"schemaFormatter","type":[{"name":"SchemaFormatter","namespace":"Flow\\ETL\\Schema","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Row\\Formatter\\ASCIISchemaFormatter::..."}],"return_type":[{"name":"StreamLoader","namespace":"Flow\\ETL\\Loader","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"LOADER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":502,"slug":"to-stdout","name":"to_stdout","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"truncate","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"20"},{"name":"output","type":[{"name":"Output","namespace":"Flow\\ETL\\Loader\\StreamLoader","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Loader\\StreamLoader\\Output::..."},{"name":"formatter","type":[{"name":"Formatter","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Formatter\\AsciiTableFormatter::..."},{"name":"schemaFormatter","type":[{"name":"SchemaFormatter","namespace":"Flow\\ETL\\Schema","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Row\\Formatter\\ASCIISchemaFormatter::..."}],"return_type":[{"name":"StreamLoader","namespace":"Flow\\ETL\\Loader","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"LOADER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":512,"slug":"to-stream","name":"to_stream","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"uri","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"truncate","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"20"},{"name":"output","type":[{"name":"Output","namespace":"Flow\\ETL\\Loader\\StreamLoader","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Loader\\StreamLoader\\Output::..."},{"name":"mode","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'w'"},{"name":"formatter","type":[{"name":"Formatter","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Formatter\\AsciiTableFormatter::..."},{"name":"schemaFormatter","type":[{"name":"SchemaFormatter","namespace":"Flow\\ETL\\Schema","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Row\\Formatter\\ASCIISchemaFormatter::..."}],"return_type":[{"name":"StreamLoader","namespace":"Flow\\ETL\\Loader","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"LOADER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":532,"slug":"to-transformation","name":"to_transformation","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"transformer","type":[{"name":"Transformer","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false},{"name":"Transformation","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"sink","type":[{"name":"Loader","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false},{"name":"Sink","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Transformed","namespace":"Flow\\ETL\\Sink","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"LOADER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":538,"slug":"to-branch","name":"to_branch","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"condition","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"sink","type":[{"name":"Loader","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false},{"name":"Sink","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Branched","namespace":"Flow\\ETL\\Sink","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"LOADER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":544,"slug":"rename-style","name":"rename_style","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"style","type":[{"name":"StringStyles","namespace":"Flow\\ETL\\String","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"RenameCaseEntryStrategy","namespace":"Flow\\ETL\\Transformer\\Rename","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"TRANSFORMER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":554,"slug":"rename-replace","name":"rename_replace","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"search","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"replace","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"RenameReplaceEntryStrategy","namespace":"Flow\\ETL\\Transformer\\Rename","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"TRANSFORMER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheTxzdHJpbmc+fHN0cmluZyAkc2VhcmNoCiAqIEBwYXJhbSBhcnJheTxzdHJpbmc+fHN0cmluZyAkcmVwbGFjZQogKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":563,"slug":"rename-map","name":"rename_map","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"renames","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"RenameMapEntryStrategy","namespace":"Flow\\ETL\\Transformer\\Rename","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"TRANSFORMER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheTxhcnJheS1rZXksIHN0cmluZz4gJHJlbmFtZXMgTWFwIG9mIG9sZF9uYW1lID0+IG5ld19uYW1lCiAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":569,"slug":"rows","name":"rows","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"schema","type":[{"name":"Schema","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"backend","type":[{"name":"Backend","namespace":"Flow\\ETL\\Column","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Column\\AdaptiveBackend::..."}],"return_type":[{"name":"Rows","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":578,"slug":"col","name":"col","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"entry","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"UnresolvedReference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"scalar_function_chain":true,"doc_comment":"LyoqCiAqIEFuIGFsaWFzIGZvciBgcmVmYC4KICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":588,"slug":"entry","name":"entry","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"entry","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"UnresolvedReference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}},{"name":"DocumentationExample","namespace":"Flow\\Documentation\\Attribute","arguments":{"topic":"columns","example":"create"}}],"scalar_function_chain":true,"doc_comment":"LyoqCiAqIEFuIGFsaWFzIGZvciBgcmVmYC4KICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":595,"slug":"ref","name":"ref","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"entry","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"UnresolvedReference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}},{"name":"DocumentationExample","namespace":"Flow\\Documentation\\Attribute","arguments":{"topic":"columns","example":"create"}}],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":601,"slug":"structure-ref","name":"structure_ref","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"entry","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"StructureFunctions","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":613,"slug":"structure","name":"structure","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"elements","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Structure","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":"LyoqCiAqIEJ1aWxkcyBhIHN0cnVjdHVyZSBmcm9tIHNjYWxhciBmdW5jdGlvbnM6IG9uZSBlbGVtZW50IHBlciBrZXksIGluIGtleSBvcmRlci4KICogQW4gZWxlbWVudCBpcyBudWxsYWJsZSB3aGVuIGl0cyBmdW5jdGlvbiBpczsgdGhlIHN0cnVjdHVyZSBpdHNlbGYgbmV2ZXIgaXMuCiAqCiAqIEBwYXJhbSBhcnJheTxhcnJheS1rZXksIFNjYWxhckZ1bmN0aW9uPiAkZWxlbWVudHMKICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":619,"slug":"list-ref","name":"list_ref","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"entry","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ListFunctions","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":625,"slug":"refs","name":"refs","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"entries","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"References","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":631,"slug":"select","name":"select","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"entries","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"Select","namespace":"Flow\\ETL\\Transformation","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"TRANSFORMER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":637,"slug":"drop","name":"drop","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"entries","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"Drop","namespace":"Flow\\ETL\\Transformation","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"TRANSFORMER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":643,"slug":"add-row-index","name":"add_row_index","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"column","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'index'"},{"name":"startFrom","type":[{"name":"StartFrom","namespace":"Flow\\ETL\\Transformation\\AddRowIndex","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Transformation\\AddRowIndex\\StartFrom::..."}],"return_type":[{"name":"AddRowIndex","namespace":"Flow\\ETL\\Transformation","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"TRANSFORMER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":652,"slug":"batch-size","name":"batch_size","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"size","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"BatchSize","namespace":"Flow\\ETL\\Transformation","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"TRANSFORMER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBpbnQ8MSwgbWF4PiAkc2l6ZQogKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":658,"slug":"limit","name":"limit","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"limit","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Limit","namespace":"Flow\\ETL\\Transformation","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"TRANSFORMER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":667,"slug":"mask-columns","name":"mask_columns","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"columns","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"mask","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'******'"}],"return_type":[{"name":"MaskColumns","namespace":"Flow\\ETL\\Transformation","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"TRANSFORMER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheTxpbnQsIHN0cmluZz4gJGNvbHVtbnMKICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":673,"slug":"optional","name":"optional","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"function","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Optional","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":680,"slug":"lit","name":"lit","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"value","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Literal","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}},{"name":"DocumentationExample","namespace":"Flow\\Documentation\\Attribute","arguments":{"topic":"columns","example":"create"}}],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":686,"slug":"exists","name":"exists","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"ref","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Exists","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":692,"slug":"when","name":"when","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"condition","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null},{"name":"then","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null},{"name":"else","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"When","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":701,"slug":"structure-get","name":"structure_get","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"ref","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"path","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ArrayGet","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":"LyoqCiAqIEFsaWFzIGZvciBgYXJyYXlfZ2V0YC4KICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":707,"slug":"array-get","name":"array_get","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"ref","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"path","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ArrayGet","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":718,"slug":"structure-get-collection","name":"structure_get_collection","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"ref","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"keys","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ArrayGetCollection","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":"LyoqCiAqIEFsaWFzIGZvciBgYXJyYXlfZ2V0X2NvbGxlY3Rpb25gLgogKgogKiBAcGFyYW0gYXJyYXk8YXJyYXkta2V5LCBtaXhlZD58U2NhbGFyRnVuY3Rpb24gJGtleXMKICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":727,"slug":"array-get-collection","name":"array_get_collection","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"ref","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"keys","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ArrayGetCollection","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheTxhcnJheS1rZXksIG1peGVkPnxTY2FsYXJGdW5jdGlvbiAka2V5cwogKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":736,"slug":"structure-get-collection-first","name":"structure_get_collection_first","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"ref","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"keys","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"ArrayGetCollection","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":"LyoqCiAqIEFsaWFzIGZvciBgYXJyYXlfZ2V0X2NvbGxlY3Rpb25fZmlyc3RgLgogKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":742,"slug":"array-get-collection-first","name":"array_get_collection_first","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"ref","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"keys","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"ArrayGetCollection","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":751,"slug":"array-exists","name":"array_exists","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"ref","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"path","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ArrayPathExists","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheTxhcnJheS1rZXksIG1peGVkPnxTY2FsYXJGdW5jdGlvbiAkcmVmCiAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":761,"slug":"array-merge","name":"array_merge","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"left","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"right","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ArrayMerge","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheTxhcnJheS1rZXksIG1peGVkPnxTY2FsYXJGdW5jdGlvbiAkbGVmdAogKiBAcGFyYW0gYXJyYXk8YXJyYXkta2V5LCBtaXhlZD58U2NhbGFyRnVuY3Rpb24gJHJpZ2h0CiAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":770,"slug":"array-merge-collection","name":"array_merge_collection","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"array","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ArrayMergeCollection","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheTxhcnJheS1rZXksIG1peGVkPnxTY2FsYXJGdW5jdGlvbiAkYXJyYXkKICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":776,"slug":"array-key-rename","name":"array_key_rename","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"ref","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"path","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"newName","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ArrayKeyRename","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":782,"slug":"array-keys-style-convert","name":"array_keys_style_convert","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"ref","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"style","type":[{"name":"StringStyles","namespace":"Flow\\ETL\\String","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\String\\StringStyles::..."}],"return_type":[{"name":"ArrayKeysStyleConvert","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":790,"slug":"array-sort","name":"array_sort","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"function","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"sort_function","type":[{"name":"Sort","namespace":"Flow\\ETL\\Function\\ArraySort","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"flags","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"recursive","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"}],"return_type":[{"name":"ArraySort","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":803,"slug":"array-reverse","name":"array_reverse","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"function","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"preserveKeys","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"ArrayReverse","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheTxhcnJheS1rZXksIG1peGVkPnxTY2FsYXJGdW5jdGlvbiAkZnVuY3Rpb24KICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":809,"slug":"now","name":"now","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"time_zone","type":[{"name":"DateTimeZone","namespace":"","is_nullable":false,"is_variadic":false},{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"DateTimeZone::..."}],"return_type":[{"name":"Now","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":815,"slug":"between","name":"between","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"value","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null},{"name":"lower_bound","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null},{"name":"upper_bound","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null},{"name":"boundary","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"Boundary","namespace":"Flow\\ETL\\Function\\Between","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Function\\Between\\Boundary::..."}],"return_type":[{"name":"Between","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":825,"slug":"to-date-time","name":"to_date_time","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"ref","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null},{"name":"format","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'Y-m-d H:i:s'"},{"name":"timeZone","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"DateTimeZone","namespace":"","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"DateTimeZone::..."}],"return_type":[{"name":"ToDateTime","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":834,"slug":"to-date","name":"to_date","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"ref","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null},{"name":"format","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'Y-m-d'"},{"name":"timeZone","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"DateTimeZone","namespace":"","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"DateTimeZone::..."}],"return_type":[{"name":"ToDate","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":843,"slug":"date-time-format","name":"date_time_format","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"ref","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"format","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"DateTimeFormat","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":849,"slug":"split","name":"split","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"value","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"separator","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"limit","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"9223372036854775807"}],"return_type":[{"name":"Split","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":862,"slug":"combine","name":"combine","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"keys","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"values","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Combine","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheTxhcnJheS1rZXksIG1peGVkPnxTY2FsYXJGdW5jdGlvbiAka2V5cwogKiBAcGFyYW0gYXJyYXk8YXJyYXkta2V5LCBtaXhlZD58U2NhbGFyRnVuY3Rpb24gJHZhbHVlcwogKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":871,"slug":"concat","name":"concat","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"functions","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"Concat","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":"LyoqCiAqIENvbmNhdCBhbGwgdmFsdWVzLiBJZiB5b3Ugd2FudCB0byBjb25jYXRlbmF0ZSB2YWx1ZXMgd2l0aCBzZXBhcmF0b3IgdXNlIGNvbmNhdF93cyBmdW5jdGlvbi4KICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":880,"slug":"concat-ws","name":"concat_ws","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"separator","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"functions","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"ConcatWithSeparator","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":"LyoqCiAqIENvbmNhdCBhbGwgdmFsdWVzIHdpdGggc2VwYXJhdG9yLgogKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":886,"slug":"hash","name":"hash","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"value","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null},{"name":"algorithm","type":[{"name":"Algorithm","namespace":"Flow\\ETL\\Hash","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Hash\\NativePHPHash::..."}],"return_type":[{"name":"Hash","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":895,"slug":"cast","name":"cast","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"value","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null},{"name":"type","type":[{"name":"Type","namespace":"Flow\\Types","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Cast","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":"LyoqCiAqIEBwYXJhbSBcRmxvd1xUeXBlc1xUeXBlPG1peGVkPnxzdHJpbmcgJHR5cGUKICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":901,"slug":"coalesce","name":"coalesce","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"values","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"Coalesce","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":907,"slug":"enum-name","name":"enum_name","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"value","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null}],"return_type":[{"name":"EnumName","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":913,"slug":"enum-value","name":"enum_value","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"value","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null}],"return_type":[{"name":"EnumValue","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":919,"slug":"count","name":"count","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"function","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Count","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"AGGREGATING_FUNCTION"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":931,"slug":"call","name":"call","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"callable","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"return_type","type":[{"name":"Type","namespace":"Flow\\Types","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"parameters","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"}],"return_type":[{"name":"CallUserFunc","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":"LyoqCiAqIENhbGxzIGEgdXNlci1kZWZpbmVkIGZ1bmN0aW9uIHdpdGggdGhlIGdpdmVuIHBhcmFtZXRlcnMuCiAqCiAqIEBwYXJhbSBUeXBlPG1peGVkPiAkcmV0dXJuX3R5cGUKICogQHBhcmFtIGFycmF5PG1peGVkPiAkcGFyYW1ldGVycwogKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":958,"slug":"array-unpack","name":"array_unpack","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"array","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"schema","type":[{"name":"Schema","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ArrayUnpack","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":"LyoqCiAqIFVucGFja3MgZWFjaCBlbGVtZW50IG9mIGFuIGFycmF5IGludG8gYSBuZXcgZW50cnksIHVzaW5nIHRoZSBhcnJheSBrZXkgYXMgdGhlIGVudHJ5IG5hbWUuCiAqCiAqIEJlZm9yZToKICogKy0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rCiAqIHxpZHwgICAgICAgICAgICAgIGFycmF5fAogKiArLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSsKICogfCAxfHsiYSI6MSwiYiI6MiwiYyI6M318CiAqIHwgMnx7ImQiOjQsImUiOjUsImYiOjZ9fAogKiArLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSsKICoKICogQWZ0ZXI6CiAqICstLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSsKICogfGlkfGFyci5ifGFyci5jfGFyci5kfGFyci5lfGFyci5mfAogKiArLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rCiAqIHwgMXwgICAgMnwgICAgM3wgICAgIHwgICAgIHwgICAgIHwKICogfCAyfCAgICAgfCAgICAgfCAgICA0fCAgICA1fCAgICA2fAogKiArLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rCiAqCiAqIEBwYXJhbSBhcnJheTxhcnJheS1rZXksIG1peGVkPnxTY2FsYXJGdW5jdGlvbiAkYXJyYXkKICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":988,"slug":"array-expand","name":"array_expand","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"function","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"expand","type":[{"name":"ArrayExpand","namespace":"Flow\\ETL\\Function\\ArrayExpand","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Function\\ArrayExpand\\ArrayExpand::..."}],"return_type":[{"name":"ArrayExpand","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":"LyoqCiAqIEV4cGFuZHMgZWFjaCB2YWx1ZSBpbnRvIGVudHJ5LCBpZiB0aGVyZSBhcmUgbW9yZSB0aGFuIG9uZSB2YWx1ZSwgbXVsdGlwbGUgcm93cyB3aWxsIGJlIGNyZWF0ZWQuCiAqIEFycmF5IGtleXMgYXJlIGlnbm9yZWQsIG9ubHkgdmFsdWVzIGFyZSB1c2VkIHRvIGNyZWF0ZSBuZXcgcm93cy4KICogTmVzdGVkIGluIGFub3RoZXIgZnVuY3Rpb24gKHN0cnVjdHVyZSgpLCBjb25jYXQoKSwgLi4uKSBpdCBzdGlsbCBnaXZlcyBvbmUgcm93IHBlciBlbGVtZW50LiBTZXZlcmFsCiAqIGV4cGFuZHMgaW4gb25lIGV4cHJlc3Npb24gYXJlIHppcHBlZCB0byB0aGUgbG9uZ2VzdCBsaXN0OyBhIHNob3J0ZXIgb25lIGdpdmVzIG51bGwsIHNvIGl0cyBlbGVtZW50CiAqIHR5cGUgYmVjb21lcyBudWxsYWJsZS4gSXQgaXMgcmVmdXNlZCBpbnNpZGUgYW5vdGhlciBhcnJheV9leHBhbmQoKSBhbmQgaW4gZmlsdGVyKCksIHVudGlsKCksCiAqIGR1cGxpY2F0ZVJvdygpLCBhZ2dyZWdhdGUoKSwgb3ZlcigpIGFuZCBvbkVhY2goKS4KICoKICogQmVmb3JlOgogKiAgICstLSstLS0tLS0tLS0tLS0tLS0tLS0tKwogKiAgIHxpZHwgICAgICAgICAgICAgIGFycmF5fAogKiAgICstLSstLS0tLS0tLS0tLS0tLS0tLS0tKwogKiAgIHwgMXx7ImEiOjEsImIiOjIsImMiOjN9fAogKiAgICstLSstLS0tLS0tLS0tLS0tLS0tLS0tKwogKgogKiBBZnRlcjoKICogICArLS0rLS0tLS0tLS0rCiAqICAgfGlkfGV4cGFuZGVkfAogKiAgICstLSstLS0tLS0tLSsKICogICB8IDF8ICAgICAgIDF8CiAqICAgfCAxfCAgICAgICAyfAogKiAgIHwgMXwgICAgICAgM3wKICogICArLS0rLS0tLS0tLS0rCiAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":994,"slug":"size","name":"size","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"value","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Size","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1000,"slug":"uuid-v4","name":"uuid_v4","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"Uuid","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1006,"slug":"uuid-v7","name":"uuid_v7","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"value","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"DateTimeInterface","namespace":"","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Uuid","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1012,"slug":"ulid","name":"ulid","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"value","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Ulid","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1018,"slug":"lower","name":"lower","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"value","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ToLower","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1024,"slug":"capitalize","name":"capitalize","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"value","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Capitalize","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1030,"slug":"upper","name":"upper","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"value","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ToUpper","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1036,"slug":"all","name":"all","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"functions","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"All","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1042,"slug":"any","name":"any","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"values","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"Any","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1048,"slug":"not","name":"not","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"value","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Not","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1054,"slug":"to-timezone","name":"to_timezone","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"value","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"DateTimeInterface","namespace":"","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"timeZone","type":[{"name":"DateTimeZone","namespace":"","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ToTimeZone","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1060,"slug":"ignore-error-handler","name":"ignore_error_handler","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"IgnoreError","namespace":"Flow\\ETL\\ErrorHandler","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1066,"slug":"skip-rows-handler","name":"skip_rows_handler","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"SkipRows","namespace":"Flow\\ETL\\ErrorHandler","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1072,"slug":"throw-error-handler","name":"throw_error_handler","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"ThrowError","namespace":"Flow\\ETL\\ErrorHandler","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1078,"slug":"regex-replace","name":"regex_replace","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"pattern","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"replacement","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"subject","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"limit","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"RegexReplace","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1088,"slug":"regex-match-all","name":"regex_match_all","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"pattern","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"subject","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"flags","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"0"},{"name":"offset","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"0"}],"return_type":[{"name":"RegexMatchAll","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1098,"slug":"regex-match","name":"regex_match","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"pattern","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"subject","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"flags","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"0"},{"name":"offset","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"0"}],"return_type":[{"name":"RegexMatch","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1108,"slug":"regex","name":"regex","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"pattern","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"subject","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"flags","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"0"},{"name":"offset","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"0"}],"return_type":[{"name":"Regex","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1118,"slug":"regex-all","name":"regex_all","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"pattern","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"subject","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"flags","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"0"},{"name":"offset","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"0"}],"return_type":[{"name":"RegexAll","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1128,"slug":"sprintf","name":"sprintf","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"format","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"args","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":true,"default_value":null}],"return_type":[{"name":"Sprintf","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1134,"slug":"sanitize","name":"sanitize","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"value","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"placeholder","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'*'"},{"name":"skipCharacters","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Sanitize","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1143,"slug":"round","name":"round","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"value","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"precision","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"2"},{"name":"mode","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"1"}],"return_type":[{"name":"Round","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1152,"slug":"number-format","name":"number_format","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"value","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"decimals","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"2"},{"name":"decimal_separator","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'.'"},{"name":"thousands_separator","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"','"}],"return_type":[{"name":"NumberFormat","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1165,"slug":"array-to-rows","name":"array_to_rows","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"data","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"schema","type":[{"name":"Schema","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"backend","type":[{"name":"Backend","namespace":"Flow\\ETL\\Column","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Column\\AdaptiveBackend::..."}],"return_type":[{"name":"Rows","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheTxhcnJheTxtaXhlZD4+fGFycmF5PG1peGVkfHN0cmluZz4gJGRhdGEKICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1173,"slug":"rank","name":"rank","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"Rank","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"WINDOW_FUNCTION"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1179,"slug":"dens-rank","name":"dens_rank","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"DenseRank","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"WINDOW_FUNCTION"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1185,"slug":"dense-rank","name":"dense_rank","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"DenseRank","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"WINDOW_FUNCTION"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1191,"slug":"average","name":"average","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"ref","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"scale","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"2"},{"name":"rounding","type":[{"name":"Rounding","namespace":"Flow\\Calculator","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Calculator\\Rounding::..."},{"name":"exact","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"Average","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"AGGREGATING_FUNCTION"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1201,"slug":"greatest","name":"greatest","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"values","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":true,"default_value":null}],"return_type":[{"name":"Greatest","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1207,"slug":"least","name":"least","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"values","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":true,"default_value":null}],"return_type":[{"name":"Least","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1213,"slug":"collect","name":"collect","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"ref","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Collect","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"AGGREGATING_FUNCTION"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1219,"slug":"string-agg","name":"string_agg","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"ref","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"separator","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"', '"},{"name":"sort","type":[{"name":"SortOrder","namespace":"Flow\\ETL\\Row","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"StringAggregate","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"AGGREGATING_FUNCTION"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1225,"slug":"collect-unique","name":"collect_unique","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"ref","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"CollectUnique","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"AGGREGATING_FUNCTION"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1231,"slug":"window","name":"window","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"Window","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1237,"slug":"unbounded-preceding","name":"unbounded_preceding","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"FrameBound","namespace":"Flow\\ETL\\Window","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1243,"slug":"preceding","name":"preceding","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"offset","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"FrameBound","namespace":"Flow\\ETL\\Window","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1249,"slug":"current-row","name":"current_row","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"FrameBound","namespace":"Flow\\ETL\\Window","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1255,"slug":"following","name":"following","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"offset","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"FrameBound","namespace":"Flow\\ETL\\Window","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1261,"slug":"unbounded-following","name":"unbounded_following","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"FrameBound","namespace":"Flow\\ETL\\Window","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1267,"slug":"sum","name":"sum","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"ref","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"exact","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"Sum","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"AGGREGATING_FUNCTION"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1273,"slug":"first","name":"first","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"ref","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"First","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"AGGREGATING_FUNCTION"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1279,"slug":"last","name":"last","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"ref","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Last","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"AGGREGATING_FUNCTION"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1285,"slug":"max","name":"max","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"ref","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Max","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"AGGREGATING_FUNCTION"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1291,"slug":"min","name":"min","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"ref","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Min","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"AGGREGATING_FUNCTION"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1297,"slug":"row-number","name":"row_number","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"RowNumber","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1308,"slug":"schema","name":"schema","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"definitions","type":[{"name":"Definition","namespace":"Flow\\ETL\\Schema","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"Schema","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBEZWZpbml0aW9uPG1peGVkPiAuLi4kZGVmaW5pdGlvbnMKICoKICogQHJldHVybiBTY2hlbWEKICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1317,"slug":"schema-to-json","name":"schema_to_json","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"schema","type":[{"name":"Schema","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"pretty","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBTY2hlbWEgJHNjaGVtYQogKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1326,"slug":"schema-to-php","name":"schema_to_php","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"schema","type":[{"name":"Schema","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"valueFormatter","type":[{"name":"ValueFormatter","namespace":"Flow\\ETL\\Schema\\Formatter\\PHPFormatter","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Schema\\Formatter\\PHPFormatter\\ValueFormatter::..."},{"name":"typeFormatter","type":[{"name":"TypeFormatter","namespace":"Flow\\ETL\\Schema\\Formatter\\PHPFormatter","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Schema\\Formatter\\PHPFormatter\\TypeFormatter::..."}],"return_type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBTY2hlbWEgJHNjaGVtYQogKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1338,"slug":"schema-to-ascii","name":"schema_to_ascii","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"schema","type":[{"name":"Schema","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"formatter","type":[{"name":"SchemaFormatter","namespace":"Flow\\ETL\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBTY2hlbWEgJHNjaGVtYQogKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1348,"slug":"schema-validate","name":"schema_validate","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"expected","type":[{"name":"Schema","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"given","type":[{"name":"Schema","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"validator","type":[{"name":"SchemaValidator","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Schema\\Validator\\StrictValidator::..."}],"return_type":[{"name":"ValidationContext","namespace":"Flow\\ETL\\Schema\\Validator","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBTY2hlbWEgJGV4cGVjdGVkCiAqIEBwYXJhbSBTY2hlbWEgJGdpdmVuCiAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1357,"slug":"schema-evolving-validator","name":"schema_evolving_validator","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"EvolvingValidator","namespace":"Flow\\ETL\\Schema\\Validator","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1363,"slug":"schema-strict-validator","name":"schema_strict_validator","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"StrictValidator","namespace":"Flow\\ETL\\Schema\\Validator","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1369,"slug":"schema-selective-validator","name":"schema_selective_validator","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"SelectiveValidator","namespace":"Flow\\ETL\\Schema\\Validator","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1378,"slug":"schema-from-json","name":"schema_from_json","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"schema","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Schema","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEByZXR1cm4gU2NoZW1hCiAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1391,"slug":"schema-metadata","name":"schema_metadata","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"metadata","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"}],"return_type":[{"name":"Metadata","namespace":"Flow\\ETL\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheTxzdHJpbmcsIGFycmF5PGJvb2x8ZmxvYXR8aW50fHN0cmluZz58Ym9vbHxmbG9hdHxpbnR8c3RyaW5nPiAkbWV0YWRhdGEKICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1400,"slug":"int-schema","name":"int_schema","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"metadata","type":[{"name":"Metadata","namespace":"Flow\\ETL\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"IntegerDefinition","namespace":"Flow\\ETL\\Schema\\Definition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEFsaWFzIGZvciBgaW50ZWdlcl9zY2hlbWFgLgogKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1406,"slug":"integer-schema","name":"integer_schema","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"metadata","type":[{"name":"Metadata","namespace":"Flow\\ETL\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"IntegerDefinition","namespace":"Flow\\ETL\\Schema\\Definition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1415,"slug":"str-schema","name":"str_schema","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"metadata","type":[{"name":"Metadata","namespace":"Flow\\ETL\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"StringDefinition","namespace":"Flow\\ETL\\Schema\\Definition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEFsaWFzIGZvciBgc3RyaW5nX3NjaGVtYWAuCiAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1421,"slug":"string-schema","name":"string_schema","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"metadata","type":[{"name":"Metadata","namespace":"Flow\\ETL\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"StringDefinition","namespace":"Flow\\ETL\\Schema\\Definition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1427,"slug":"bool-schema","name":"bool_schema","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"metadata","type":[{"name":"Metadata","namespace":"Flow\\ETL\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"BooleanDefinition","namespace":"Flow\\ETL\\Schema\\Definition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1433,"slug":"float-schema","name":"float_schema","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"metadata","type":[{"name":"Metadata","namespace":"Flow\\ETL\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"FloatDefinition","namespace":"Flow\\ETL\\Schema\\Definition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1447,"slug":"map-schema","name":"map_schema","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"type","type":[{"name":"MapType","namespace":"Flow\\Types\\Type\\Logical","is_nullable":false,"is_variadic":false},{"name":"Type","namespace":"Flow\\Types","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"metadata","type":[{"name":"Metadata","namespace":"Flow\\ETL\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"MapDefinition","namespace":"Flow\\ETL\\Schema\\Definition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEB0ZW1wbGF0ZSBUS2V5IG9mIGFycmF5LWtleQogKiBAdGVtcGxhdGUgVFZhbHVlCiAqCiAqIEBwYXJhbSBNYXBUeXBlPFRLZXksIFRWYWx1ZT58VHlwZTxhcnJheTxUS2V5LCBUVmFsdWU+PiAkdHlwZQogKgogKiBAcmV0dXJuIE1hcERlZmluaXRpb248VEtleSwgVFZhbHVlPgogKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1461,"slug":"list-schema","name":"list_schema","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"type","type":[{"name":"ListType","namespace":"Flow\\Types\\Type\\Logical","is_nullable":false,"is_variadic":false},{"name":"Type","namespace":"Flow\\Types","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"metadata","type":[{"name":"Metadata","namespace":"Flow\\ETL\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"ListDefinition","namespace":"Flow\\ETL\\Schema\\Definition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEB0ZW1wbGF0ZSBUCiAqCiAqIEBwYXJhbSBMaXN0VHlwZTxUPnxUeXBlPGxpc3Q8VD4+ICR0eXBlCiAqCiAqIEByZXR1cm4gTGlzdERlZmluaXRpb248VD4KICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1479,"slug":"enum-schema","name":"enum_schema","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"type","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"metadata","type":[{"name":"Metadata","namespace":"Flow\\ETL\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"EnumDefinition","namespace":"Flow\\ETL\\Schema\\Definition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEB0ZW1wbGF0ZSBUIG9mIFxVbml0RW51bQogKgogKiBAcGFyYW0gY2xhc3Mtc3RyaW5nPFQ+ICR0eXBlCiAqCiAqIEByZXR1cm4gRW51bURlZmluaXRpb248VD4KICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1485,"slug":"null-schema","name":"null_schema","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"metadata","type":[{"name":"Metadata","namespace":"Flow\\ETL\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"NullDefinition","namespace":"Flow\\ETL\\Schema\\Definition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1491,"slug":"datetime-schema","name":"datetime_schema","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"metadata","type":[{"name":"Metadata","namespace":"Flow\\ETL\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"zone","type":[{"name":"DateTimeZone","namespace":"","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'UTC'"}],"return_type":[{"name":"DateTimeDefinition","namespace":"Flow\\ETL\\Schema\\Definition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1501,"slug":"time-schema","name":"time_schema","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"metadata","type":[{"name":"Metadata","namespace":"Flow\\ETL\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"TimeDefinition","namespace":"Flow\\ETL\\Schema\\Definition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1507,"slug":"date-schema","name":"date_schema","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"metadata","type":[{"name":"Metadata","namespace":"Flow\\ETL\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"DateDefinition","namespace":"Flow\\ETL\\Schema\\Definition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1513,"slug":"json-schema","name":"json_schema","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"metadata","type":[{"name":"Metadata","namespace":"Flow\\ETL\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"JsonDefinition","namespace":"Flow\\ETL\\Schema\\Definition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1519,"slug":"html-schema","name":"html_schema","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"metadata","type":[{"name":"Metadata","namespace":"Flow\\ETL\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"HTMLDefinition","namespace":"Flow\\ETL\\Schema\\Definition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1525,"slug":"html-element-schema","name":"html_element_schema","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"metadata","type":[{"name":"Metadata","namespace":"Flow\\ETL\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"HTMLElementDefinition","namespace":"Flow\\ETL\\Schema\\Definition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1531,"slug":"xml-schema","name":"xml_schema","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"metadata","type":[{"name":"Metadata","namespace":"Flow\\ETL\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"XMLDefinition","namespace":"Flow\\ETL\\Schema\\Definition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1537,"slug":"xml-element-schema","name":"xml_element_schema","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"metadata","type":[{"name":"Metadata","namespace":"Flow\\ETL\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"XMLElementDefinition","namespace":"Flow\\ETL\\Schema\\Definition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1550,"slug":"structure-schema","name":"structure_schema","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"type","type":[{"name":"StructureType","namespace":"Flow\\Types\\Type\\Logical","is_nullable":false,"is_variadic":false},{"name":"Type","namespace":"Flow\\Types","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"metadata","type":[{"name":"Metadata","namespace":"Flow\\ETL\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"StructureDefinition","namespace":"Flow\\ETL\\Schema\\Definition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEB0ZW1wbGF0ZSBUCiAqCiAqIEBwYXJhbSBTdHJ1Y3R1cmVUeXBlPGFycmF5PGFycmF5LWtleSwgVD4+fFR5cGU8YXJyYXk8YXJyYXkta2V5LCBUPj4gJHR5cGUKICoKICogQHJldHVybiBTdHJ1Y3R1cmVEZWZpbml0aW9uPFQ+CiAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1561,"slug":"uuid-schema","name":"uuid_schema","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"metadata","type":[{"name":"Metadata","namespace":"Flow\\ETL\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"UuidDefinition","namespace":"Flow\\ETL\\Schema\\Definition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1567,"slug":"time-zone-schema","name":"time_zone_schema","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"metadata","type":[{"name":"Metadata","namespace":"Flow\\ETL\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"TimeZoneDefinition","namespace":"Flow\\ETL\\Schema\\Definition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1580,"slug":"definition-from-array","name":"definition_from_array","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"definition","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Definition","namespace":"Flow\\ETL\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIERlZmluaXRpb24gZnJvbSBhbiBhcnJheSByZXByZXNlbnRhdGlvbi4KICoKICogQHBhcmFtIGFycmF5PGFycmF5LWtleSwgbWl4ZWQ+ICRkZWZpbml0aW9uCiAqCiAqIEByZXR1cm4gRGVmaW5pdGlvbjxtaXhlZD4KICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1613,"slug":"definition-from-type","name":"definition_from_type","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"ref","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"type","type":[{"name":"Type","namespace":"Flow\\Types","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"metadata","type":[{"name":"Metadata","namespace":"Flow\\ETL\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Definition","namespace":"Flow\\ETL\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIERlZmluaXRpb24gZnJvbSBhIFR5cGUuCiAqCiAqIEBwYXJhbSBUeXBlPG1peGVkPiAkdHlwZQogKgogKiBAcmV0dXJuIERlZmluaXRpb248bWl4ZWQ+CiAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1666,"slug":"infer-schema","name":"infer_schema","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"SchemaInferenceBuilder","namespace":"Flow\\ETL\\Schema\\Inference","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1672,"slug":"execution-context","name":"execution_context","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"config","type":[{"name":"Config","namespace":"Flow\\ETL","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"FlowContext","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1678,"slug":"flow-context","name":"flow_context","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"config","type":[{"name":"Config","namespace":"Flow\\ETL","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"FlowContext","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1684,"slug":"config","name":"config","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"Config","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1690,"slug":"config-builder","name":"config_builder","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"ConfigBuilder","namespace":"Flow\\ETL\\Config","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1696,"slug":"memory-sort","name":"memory_sort","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"MemorySortBuilder","namespace":"Flow\\ETL\\Config\\Sort","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1702,"slug":"external-sort","name":"external_sort","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"ExternalSortBuilder","namespace":"Flow\\ETL\\Config\\Sort","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1708,"slug":"hash-join","name":"hash_join","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"HashJoinBuilder","namespace":"Flow\\ETL\\Config\\Join","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1714,"slug":"hash-group-by","name":"hash_group_by","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"HashGroupByBuilder","namespace":"Flow\\ETL\\Config\\Grouping","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1720,"slug":"hash-repartition","name":"hash_repartition","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"HashRepartitionBuilder","namespace":"Flow\\ETL\\Config\\Repartition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1729,"slug":"pivot-values","name":"pivot_values","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"values","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"DeclaredPivotValues","namespace":"Flow\\ETL\\GroupBy","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIERlY2xhcmVzIHRoZSBwaXZvdCBjb2x1bW5zIGEgZ3JvdXBCeSgpLT5waXZvdCgpIHByb2R1Y2VzLCBzbyB0aGUgcGxhbiBjYW4gbmFtZSB0aGVtIGJlZm9yZSBhIHJvdyBmbG93cy4KICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1739,"slug":"discover-pivot-values","name":"discover_pivot_values","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"maxValues","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"10000"}],"return_type":[{"name":"DiscoveredPivotValues","namespace":"Flow\\ETL\\GroupBy","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIFJlYWRzIHRoZSBwaXZvdCBjb2x1bW4gb25jZSBhdCBidWlsZCB0aW1lIGFuZCB0dXJucyB3aGF0IGl0IGZpbmRzIGludG8gZGVjbGFyZWQgdmFsdWVzLiBSZWZ1c2VzIGEKICogc291cmNlIHRoYXQgY2Fubm90IGJlIHJlYWQgdHdpY2UuCiAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1745,"slug":"partition-by","name":"partition_by","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"entry","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"entries","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"Partitioning","namespace":"Flow\\ETL\\Loader","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"LOADER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1754,"slug":"partition-types","name":"partition_types","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"types","type":[{"name":"Type","namespace":"Flow\\Types","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"PartitionTypes","namespace":"Flow\\ETL\\Extractor\\File","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"EXTRACTOR"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBUeXBlPG1peGVkPiAuLi4kdHlwZXMgcGFydGl0aW9uIGNvbHVtbiBuYW1lID0+IHR5cGUsIHBhc3NlZCBhcyBuYW1lZCBhcmd1bWVudHMKICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1764,"slug":"overwrite","name":"overwrite","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"SaveMode","namespace":"Flow\\ETL\\Filesystem","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEFsaWFzIGZvciBzYXZlX21vZGVfb3ZlcndyaXRlKCkuCiAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1770,"slug":"save-mode-overwrite","name":"save_mode_overwrite","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"SaveMode","namespace":"Flow\\ETL\\Filesystem","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1779,"slug":"ignore","name":"ignore","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"SaveMode","namespace":"Flow\\ETL\\Filesystem","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEFsaWFzIGZvciBzYXZlX21vZGVfaWdub3JlKCkuCiAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1785,"slug":"save-mode-ignore","name":"save_mode_ignore","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"SaveMode","namespace":"Flow\\ETL\\Filesystem","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1794,"slug":"exception-if-exists","name":"exception_if_exists","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"SaveMode","namespace":"Flow\\ETL\\Filesystem","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEFsaWFzIGZvciBzYXZlX21vZGVfZXhjZXB0aW9uX2lmX2V4aXN0cygpLgogKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1800,"slug":"save-mode-exception-if-exists","name":"save_mode_exception_if_exists","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"SaveMode","namespace":"Flow\\ETL\\Filesystem","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1809,"slug":"append","name":"append","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"SaveMode","namespace":"Flow\\ETL\\Filesystem","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEFsaWFzIGZvciBzYXZlX21vZGVfYXBwZW5kKCkuCiAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1815,"slug":"save-mode-append","name":"save_mode_append","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"SaveMode","namespace":"Flow\\ETL\\Filesystem","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1821,"slug":"print-rows","name":"print_rows","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"rows","type":[{"name":"Rows","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"truncate","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"formatter","type":[{"name":"Formatter","namespace":"Flow\\ETL","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1827,"slug":"identical","name":"identical","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"left","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"right","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Identical","namespace":"Flow\\ETL\\Join\\Comparison","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"COMPARISON"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1833,"slug":"equal","name":"equal","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"left","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"right","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Equal","namespace":"Flow\\ETL\\Join\\Comparison","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"COMPARISON"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1839,"slug":"compare-all","name":"compare_all","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"comparison","type":[{"name":"Comparison","namespace":"Flow\\ETL\\Join","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"comparisons","type":[{"name":"Comparison","namespace":"Flow\\ETL\\Join","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"All","namespace":"Flow\\ETL\\Join\\Comparison","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"COMPARISON"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1845,"slug":"compare-any","name":"compare_any","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"comparison","type":[{"name":"Comparison","namespace":"Flow\\ETL\\Join","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"comparisons","type":[{"name":"Comparison","namespace":"Flow\\ETL\\Join","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"Any","namespace":"Flow\\ETL\\Join\\Comparison","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"COMPARISON"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1856,"slug":"join-on","name":"join_on","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"comparisons","type":[{"name":"Comparison","namespace":"Flow\\ETL\\Join","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"join_prefix","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"''"}],"return_type":[{"name":"Expression","namespace":"Flow\\ETL\\Join","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}},{"name":"DocumentationExample","namespace":"Flow\\Documentation\\Attribute","arguments":{"topic":"joins","example":"join"}},{"name":"DocumentationExample","namespace":"Flow\\Documentation\\Attribute","arguments":{"topic":"joins","example":"join_each"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheTxDb21wYXJpc29ufHN0cmluZz58Q29tcGFyaXNvbiAkY29tcGFyaXNvbnMKICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1862,"slug":"schema-sort-by-name","name":"schema_sort_by_name","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"order","type":[{"name":"SortOrder","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Row\\SortOrder::..."}],"return_type":[{"name":"SortingStrategy","namespace":"Flow\\ETL\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1871,"slug":"schema-sort-by-type","name":"schema_sort_by_type","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"priorities","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[...]"},{"name":"order","type":[{"name":"SortOrder","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Row\\SortOrder::..."}],"return_type":[{"name":"SortingStrategy","namespace":"Flow\\ETL\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheTxjbGFzcy1zdHJpbmc8VHlwZTxtaXhlZD4+LCBpbnQ+ICRwcmlvcml0aWVzCiAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1882,"slug":"schema-sort-by-type-and-name","name":"schema_sort_by_type_and_name","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"priorities","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[...]"},{"name":"order","type":[{"name":"SortOrder","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Row\\SortOrder::..."}],"return_type":[{"name":"SortingStrategy","namespace":"Flow\\ETL\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheTxjbGFzcy1zdHJpbmc8VHlwZTxtaXhlZD4+LCBpbnQ+ICRwcmlvcml0aWVzCiAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1893,"slug":"schema-sort-by-metadata","name":"schema_sort_by_metadata","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"key","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"order","type":[{"name":"SortOrder","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Row\\SortOrder::..."}],"return_type":[{"name":"SortingStrategy","namespace":"Flow\\ETL\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1903,"slug":"is-type","name":"is_type","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"type","type":[{"name":"Type","namespace":"Flow\\Types","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"value","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null}],"return_type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheTxzdHJpbmd8VHlwZTxtaXhlZD4+fFR5cGU8bWl4ZWQ+ICR0eXBlCiAqIEBwYXJhbSBtaXhlZCAkdmFsdWUKICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1937,"slug":"generate-random-string","name":"generate_random_string","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"length","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"32"},{"name":"generator","type":[{"name":"RandomValueGenerator","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\NativePHPRandomValueGenerator::..."}],"return_type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1945,"slug":"generate-random-int","name":"generate_random_int","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"start","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"-9223372036854775808"},{"name":"end","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"9223372036854775807"},{"name":"generator","type":[{"name":"RandomValueGenerator","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\NativePHPRandomValueGenerator::..."}],"return_type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1954,"slug":"random-string","name":"random_string","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"length","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"generator","type":[{"name":"RandomValueGenerator","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\NativePHPRandomValueGenerator::..."}],"return_type":[{"name":"RandomString","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1962,"slug":"date-interval-to-milliseconds","name":"date_interval_to_milliseconds","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"interval","type":[{"name":"DateInterval","namespace":"","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1979,"slug":"date-interval-to-seconds","name":"date_interval_to_seconds","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"interval","type":[{"name":"DateInterval","namespace":"","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1996,"slug":"date-interval-to-microseconds","name":"date_interval_to_microseconds","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"interval","type":[{"name":"DateInterval","namespace":"","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":2013,"slug":"with-entry","name":"with_entry","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"function","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"WithEntry","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":2019,"slug":"constraint-unique","name":"constraint_unique","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"reference","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"references","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"UniqueConstraint","namespace":"Flow\\ETL\\Constraint","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":2025,"slug":"constraint-sorted-by","name":"constraint_sorted_by","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"column","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"columns","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"SortedByConstraint","namespace":"Flow\\ETL\\Constraint","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":2035,"slug":"analyze","name":"analyze","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"Analyze","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":2044,"slug":"match-cases","name":"match_cases","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"cases","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"default","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"MatchCases","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheTxNYXRjaENvbmRpdGlvbj4gJGNhc2VzCiAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":2050,"slug":"match-condition","name":"match_condition","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"condition","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null},{"name":"then","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null}],"return_type":[{"name":"MatchCondition","namespace":"Flow\\ETL\\Function\\MatchCases","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":2056,"slug":"clock","name":"clock","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"time_zone","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'UTC'"}],"return_type":[{"name":"ClockInterface","namespace":"Psr\\Clock","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/Floe\/DSL\/functions.php","start_line_in_file":31,"slug":"from-floe","name":"from_floe","namespace":"Flow\\Floe\\DSL","parameters":[{"name":"path","type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"codec","type":[{"name":"Codec","namespace":"Flow\\Floe","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Floe\\Codec\\NoopCodec::..."},{"name":"chunk_size","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"65536"},{"name":"filesystem","type":[{"name":"Filesystem","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Filesystem\\Local\\NativeLocalFilesystem::..."}],"return_type":[{"name":"FloeExtractor","namespace":"Flow\\Floe","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"FLOE","type":"EXTRACTOR"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBQYXRofHN0cmluZyAkcGF0aAogKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/Floe\/DSL\/functions.php","start_line_in_file":44,"slug":"to-floe","name":"to_floe","namespace":"Flow\\Floe\\DSL","parameters":[{"name":"path","type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"metadata","type":[{"name":"Metadata","namespace":"Flow\\ETL\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"options","type":[{"name":"Options","namespace":"Flow\\Floe","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Floe\\Options::..."},{"name":"filesystem","type":[{"name":"Filesystem","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Filesystem\\Local\\NativeLocalFilesystem::..."}],"return_type":[{"name":"FloeLoader","namespace":"Flow\\Floe","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"FLOE","type":"LOADER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBQYXRofHN0cmluZyAkcGF0aAogKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/Floe\/DSL\/functions.php","start_line_in_file":54,"slug":"floe-options","name":"floe_options","namespace":"Flow\\Floe\\DSL","parameters":[{"name":"buffer_size","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"65536"},{"name":"codec","type":[{"name":"Codec","namespace":"Flow\\Floe","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Floe\\Codec\\NoopCodec::..."}],"return_type":[{"name":"Options","namespace":"Flow\\Floe","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"FLOE","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/Floe\/DSL\/functions.php","start_line_in_file":66,"slug":"merge-floe","name":"merge_floe","namespace":"Flow\\Floe\\DSL","parameters":[{"name":"sources","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"dest","type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"backend","type":[{"name":"Backend","namespace":"Flow\\ETL\\Column","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"compact","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"metadata","type":[{"name":"Metadata","namespace":"Flow\\ETL\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"filesystem","type":[{"name":"Filesystem","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Filesystem\\Local\\NativeLocalFilesystem::..."}],"return_type":[{"name":"void","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"FLOE","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIE1lcmdlcyBzZXZlcmFsIEZsb2UgZmlsZXMgKHNhbWUgb3IgYXBwZW5kLWNvbXBhdGlibGUgZXZvbHZpbmcgc2NoZW1hKSBpbnRvIG9uZS4gQnl0ZS1zcGxpY2VzIGZyYW1lCiAqIHJlZ2lvbnMgYnkgZGVmYXVsdCAoTyhieXRlcyksIG5vIHJlLWVuY29kZSk7IGNvbXBhY3QgcmUtZW5jb2RlcyBhbGwgcm93cyBpbnRvIGZld2VyIHNlY3Rpb25zLgogKgogKiBAcGFyYW0gYXJyYXk8aW50LCBQYXRofHN0cmluZz4gJHNvdXJjZXMKICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/Serializer\/DSL\/functions.php","start_line_in_file":18,"slug":"serialize-to-string","name":"serialize_to_string","namespace":"Flow\\Serializer\\DSL","parameters":[{"name":"serializer","type":[{"name":"Serializer","namespace":"Flow\\Serializer","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"rows","type":[{"name":"Rows","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/Serializer\/DSL\/functions.php","start_line_in_file":27,"slug":"unserialize-from-string","name":"unserialize_from_string","namespace":"Flow\\Serializer\\DSL","parameters":[{"name":"serializer","type":[{"name":"Serializer","namespace":"Flow\\Serializer","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"payload","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Rows","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-avro\/src\/Flow\/ETL\/Adapter\/Avro\/functions.php","start_line_in_file":21,"slug":"from-avro","name":"from_avro","namespace":"Flow\\ETL\\DSL\\Adapter\\Avro","parameters":[{"name":"path","type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"filesystem","type":[{"name":"Filesystem","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Filesystem\\Local\\NativeLocalFilesystem::..."}],"return_type":[{"name":"AvroExtractor","namespace":"Flow\\ETL\\Adapter\\Avro\\FlixTech","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"AVRO","type":"EXTRACTOR"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-avro\/src\/Flow\/ETL\/Adapter\/Avro\/functions.php","start_line_in_file":27,"slug":"to-avro","name":"to_avro","namespace":"Flow\\ETL\\DSL\\Adapter\\Avro","parameters":[{"name":"path","type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"schema","type":[{"name":"Schema","namespace":"Flow\\ETL","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"filesystem","type":[{"name":"Filesystem","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Filesystem\\Local\\NativeLocalFilesystem::..."}],"return_type":[{"name":"AvroLoader","namespace":"Flow\\ETL\\Adapter\\Avro\\FlixTech","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"AVRO","type":"LOADER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-chartjs\/src\/Flow\/ETL\/Adapter\/ChartJS\/functions.php","start_line_in_file":23,"slug":"bar-chart","name":"bar_chart","namespace":"Flow\\ETL\\Adapter\\ChartJS","parameters":[{"name":"label","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"datasets","type":[{"name":"References","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"BarChart","namespace":"Flow\\ETL\\Adapter\\ChartJS\\Chart","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CHART_JS","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-chartjs\/src\/Flow\/ETL\/Adapter\/ChartJS\/functions.php","start_line_in_file":29,"slug":"line-chart","name":"line_chart","namespace":"Flow\\ETL\\Adapter\\ChartJS","parameters":[{"name":"label","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"datasets","type":[{"name":"References","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"LineChart","namespace":"Flow\\ETL\\Adapter\\ChartJS\\Chart","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CHART_JS","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-chartjs\/src\/Flow\/ETL\/Adapter\/ChartJS\/functions.php","start_line_in_file":35,"slug":"pie-chart","name":"pie_chart","namespace":"Flow\\ETL\\Adapter\\ChartJS","parameters":[{"name":"label","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"datasets","type":[{"name":"References","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"PieChart","namespace":"Flow\\ETL\\Adapter\\ChartJS\\Chart","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CHART_JS","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-chartjs\/src\/Flow\/ETL\/Adapter\/ChartJS\/functions.php","start_line_in_file":41,"slug":"to-chartjs","name":"to_chartjs","namespace":"Flow\\ETL\\Adapter\\ChartJS","parameters":[{"name":"type","type":[{"name":"Chart","namespace":"Flow\\ETL\\Adapter\\ChartJS","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ChartJSLoader","namespace":"Flow\\ETL\\Adapter\\ChartJS","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CHART_JS","type":"LOADER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-chartjs\/src\/Flow\/ETL\/Adapter\/ChartJS\/functions.php","start_line_in_file":52,"slug":"to-chartjs-file","name":"to_chartjs_file","namespace":"Flow\\ETL\\Adapter\\ChartJS","parameters":[{"name":"type","type":[{"name":"Chart","namespace":"Flow\\ETL\\Adapter\\ChartJS","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"output","type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"template","type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"filesystem","type":[{"name":"Filesystem","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Filesystem\\Local\\NativeLocalFilesystem::..."}],"return_type":[{"name":"ChartJSLoader","namespace":"Flow\\ETL\\Adapter\\ChartJS","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CHART_JS","type":"LOADER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBDaGFydCAkdHlwZQogKiBAcGFyYW0gbnVsbHxQYXRofHN0cmluZyAkb3V0cHV0IC0gQGRlcHJlY2F0ZWQgdXNlICRsb2FkZXItPndpdGhPdXRwdXRQYXRoKCkgaW5zdGVhZAogKiBAcGFyYW0gbnVsbHxQYXRofHN0cmluZyAkdGVtcGxhdGUgLSBAZGVwcmVjYXRlZCB1c2UgJGxvYWRlci0+d2l0aFRlbXBsYXRlKCkgaW5zdGVhZAogKi8="},{"repository_path":"src\/adapter\/etl-adapter-chartjs\/src\/Flow\/ETL\/Adapter\/ChartJS\/functions.php","start_line_in_file":84,"slug":"to-chartjs-var","name":"to_chartjs_var","namespace":"Flow\\ETL\\Adapter\\ChartJS","parameters":[{"name":"type","type":[{"name":"Chart","namespace":"Flow\\ETL\\Adapter\\ChartJS","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"output","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ChartJSLoader","namespace":"Flow\\ETL\\Adapter\\ChartJS","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CHART_JS","type":"LOADER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBDaGFydCAkdHlwZQogKiBAcGFyYW0gYXJyYXk8YXJyYXkta2V5LCBtaXhlZD4gJG91dHB1dCAtIEBkZXByZWNhdGVkIHVzZSAkbG9hZGVyLT53aXRoT3V0cHV0VmFyKCkgaW5zdGVhZAogKi8="},{"repository_path":"src\/adapter\/etl-adapter-csv\/src\/Flow\/ETL\/Adapter\/CSV\/functions.php","start_line_in_file":35,"slug":"from-csv","name":"from_csv","namespace":"Flow\\ETL\\Adapter\\CSV","parameters":[{"name":"path","type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"with_header","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"empty_to_null","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"separator","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"enclosure","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"escape","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"characters_read_in_line","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"10485760"},{"name":"schema","type":[{"name":"Schema","namespace":"Flow\\ETL","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"filesystem","type":[{"name":"Filesystem","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Filesystem\\Local\\NativeLocalFilesystem::..."}],"return_type":[{"name":"CSVExtractor","namespace":"Flow\\ETL\\Adapter\\CSV","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CSV","type":"EXTRACTOR"}},{"name":"DocumentationExample","namespace":"Flow\\Documentation\\Attribute","arguments":{"topic":"reading","example":"csv"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBQYXRofHN0cmluZyAkcGF0aAogKiBAcGFyYW0gYm9vbCAkZW1wdHlfdG9fbnVsbCAtIEBkZXByZWNhdGVkIHVzZSAkbG9hZGVyLT53aXRoRW1wdHlUb051bGwoKSBpbnN0ZWFkCiAqIEBwYXJhbSBib29sICR3aXRoX2hlYWRlciAtIEBkZXByZWNhdGVkIHVzZSAkbG9hZGVyLT53aXRoSGVhZGVyKCkgaW5zdGVhZAogKiBAcGFyYW0gbnVsbHxzdHJpbmcgJHNlcGFyYXRvciAtIEBkZXByZWNhdGVkIHVzZSAkbG9hZGVyLT53aXRoU2VwYXJhdG9yKCkgaW5zdGVhZAogKiBAcGFyYW0gbnVsbHxzdHJpbmcgJGVuY2xvc3VyZSAtIEBkZXByZWNhdGVkIHVzZSAkbG9hZGVyLT53aXRoRW5jbG9zdXJlKCkgaW5zdGVhZAogKiBAcGFyYW0gbnVsbHxzdHJpbmcgJGVzY2FwZSAtIEBkZXByZWNhdGVkIHVzZSAkbG9hZGVyLT53aXRoRXNjYXBlKCkgaW5zdGVhZAogKiBAcGFyYW0gaW50PDEsIG1heD4gJGNoYXJhY3RlcnNfcmVhZF9pbl9saW5lIC0gQGRlcHJlY2F0ZWQgdXNlICRsb2FkZXItPndpdGhDaGFyYWN0ZXJzUmVhZEluTGluZSgpIGluc3RlYWQKICogQHBhcmFtIG51bGx8U2NoZW1hICRzY2hlbWEgLSBAZGVwcmVjYXRlZCB1c2UgJGxvYWRlci0+d2l0aFNjaGVtYSgpIGluc3RlYWQKICov"},{"repository_path":"src\/adapter\/etl-adapter-csv\/src\/Flow\/ETL\/Adapter\/CSV\/functions.php","start_line_in_file":80,"slug":"to-csv","name":"to_csv","namespace":"Flow\\ETL\\Adapter\\CSV","parameters":[{"name":"uri","type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"with_header","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"separator","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"','"},{"name":"enclosure","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'\\\"'"},{"name":"escape","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'\\\\'"},{"name":"new_line_separator","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'\\n'"},{"name":"datetime_format","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'Y-m-d\\\\TH:i:sP'"},{"name":"filesystem","type":[{"name":"Filesystem","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Filesystem\\Local\\NativeLocalFilesystem::..."}],"return_type":[{"name":"CSVLoader","namespace":"Flow\\ETL\\Adapter\\CSV","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CSV","type":"LOADER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBQYXRofHN0cmluZyAkdXJpCiAqIEBwYXJhbSBib29sICR3aXRoX2hlYWRlciAtIEBkZXByZWNhdGVkIHVzZSAkbG9hZGVyLT53aXRoSGVhZGVyKCkgaW5zdGVhZAogKiBAcGFyYW0gc3RyaW5nICRzZXBhcmF0b3IgLSBAZGVwcmVjYXRlZCB1c2UgJGxvYWRlci0+d2l0aFNlcGFyYXRvcigpIGluc3RlYWQKICogQHBhcmFtIHN0cmluZyAkZW5jbG9zdXJlIC0gQGRlcHJlY2F0ZWQgdXNlICRsb2FkZXItPndpdGhFbmNsb3N1cmUoKSBpbnN0ZWFkCiAqIEBwYXJhbSBzdHJpbmcgJGVzY2FwZSAtIEBkZXByZWNhdGVkIHVzZSAkbG9hZGVyLT53aXRoRXNjYXBlKCkgaW5zdGVhZAogKiBAcGFyYW0gc3RyaW5nICRuZXdfbGluZV9zZXBhcmF0b3IgLSBAZGVwcmVjYXRlZCB1c2UgJGxvYWRlci0+d2l0aE5ld0xpbmVTZXBhcmF0b3IoKSBpbnN0ZWFkCiAqIEBwYXJhbSBzdHJpbmcgJGRhdGV0aW1lX2Zvcm1hdCAtIEBkZXByZWNhdGVkIHVzZSAkbG9hZGVyLT53aXRoRGF0ZVRpbWVGb3JtYXQoKSBpbnN0ZWFkCiAqLw=="},{"repository_path":"src\/adapter\/etl-adapter-csv\/src\/Flow\/ETL\/Adapter\/CSV\/functions.php","start_line_in_file":106,"slug":"csv-detect-separator","name":"csv_detect_separator","namespace":"Flow\\ETL\\Adapter\\CSV","parameters":[{"name":"stream","type":[{"name":"SourceStream","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"lines","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"5"},{"name":"fallback","type":[{"name":"Option","namespace":"Flow\\ETL\\Adapter\\CSV\\Detector","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"Flow\\ETL\\Adapter\\CSV\\Detector\\Option::..."},{"name":"options","type":[{"name":"Options","namespace":"Flow\\ETL\\Adapter\\CSV\\Detector","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Option","namespace":"Flow\\ETL\\Adapter\\CSV\\Detector","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CSV","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBTb3VyY2VTdHJlYW0gJHN0cmVhbSAtIHZhbGlkIHJlc291cmNlIHRvIENTViBmaWxlCiAqIEBwYXJhbSBpbnQ8MSwgbWF4PiAkbGluZXMgLSBudW1iZXIgb2YgbGluZXMgdG8gcmVhZCBmcm9tIENTViBmaWxlLCBkZWZhdWx0IDUsIG1vcmUgbGluZXMgbWVhbnMgbW9yZSBhY2N1cmF0ZSBkZXRlY3Rpb24gYnV0IHNsb3dlciBkZXRlY3Rpb24KICogQHBhcmFtIG51bGx8T3B0aW9uICRmYWxsYmFjayAtIGZhbGxiYWNrIG9wdGlvbiB0byB1c2Ugd2hlbiBubyBiZXN0IG9wdGlvbiBjYW4gYmUgZGV0ZWN0ZWQsIGRlZmF1bHQgaXMgT3B0aW9uKCcsJywgJyInLCAnXFwnKQogKiBAcGFyYW0gbnVsbHxPcHRpb25zICRvcHRpb25zIC0gb3B0aW9ucyB0byB1c2UgZm9yIGRldGVjdGlvbiwgZGVmYXVsdCBpcyBPcHRpb25zOjphbGwoKQogKi8="},{"repository_path":"src\/adapter\/etl-adapter-doctrine\/src\/Flow\/ETL\/Adapter\/Doctrine\/functions.php","start_line_in_file":41,"slug":"dbal-dataframe-factory","name":"dbal_dataframe_factory","namespace":"Flow\\ETL\\Adapter\\Doctrine","parameters":[{"name":"connection","type":[{"name":"Connection","namespace":"Doctrine\\DBAL","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"query","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"parameters","type":[{"name":"QueryParameter","namespace":"Flow\\ETL\\Adapter\\Doctrine","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"DbalDataFrameFactory","namespace":"Flow\\ETL\\Adapter\\Doctrine","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"DOCTRINE","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheTxzdHJpbmcsIG1peGVkPnxDb25uZWN0aW9uICRjb25uZWN0aW9uCiAqIEBwYXJhbSBzdHJpbmcgJHF1ZXJ5CiAqIEBwYXJhbSBRdWVyeVBhcmFtZXRlciAuLi4kcGFyYW1ldGVycwogKi8="},{"repository_path":"src\/adapter\/etl-adapter-doctrine\/src\/Flow\/ETL\/Adapter\/Doctrine\/functions.php","start_line_in_file":61,"slug":"from-dbal-limit-offset","name":"from_dbal_limit_offset","namespace":"Flow\\ETL\\Adapter\\Doctrine","parameters":[{"name":"connection","type":[{"name":"Connection","namespace":"Doctrine\\DBAL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"table","type":[{"name":"Table","namespace":"Flow\\ETL\\Adapter\\Doctrine","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"order_by","type":[{"name":"OrderBy","namespace":"Flow\\ETL\\Adapter\\Doctrine","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"page_size","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"1000"},{"name":"maximum","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"DbalLimitOffsetExtractor","namespace":"Flow\\ETL\\Adapter\\Doctrine","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"DOCTRINE","type":"EXTRACTOR"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBDb25uZWN0aW9uICRjb25uZWN0aW9uCiAqIEBwYXJhbSBzdHJpbmd8VGFibGUgJHRhYmxlCiAqIEBwYXJhbSBhcnJheTxPcmRlckJ5PnxPcmRlckJ5ICRvcmRlcl9ieQogKiBAcGFyYW0gaW50ICRwYWdlX3NpemUgLSBiZWNvbWVzIHRoZSBleHRyYWN0b3IncyBiYXRjaCBzaXplOiByb3dzIHBlciBwYWdlCiAqIEBwYXJhbSBudWxsfGludCAkbWF4aW11bQogKgogKiBAdGhyb3dzIEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbgogKi8="},{"repository_path":"src\/adapter\/etl-adapter-doctrine\/src\/Flow\/ETL\/Adapter\/Doctrine\/functions.php","start_line_in_file":88,"slug":"from-dbal-limit-offset-qb","name":"from_dbal_limit_offset_qb","namespace":"Flow\\ETL\\Adapter\\Doctrine","parameters":[{"name":"connection","type":[{"name":"Connection","namespace":"Doctrine\\DBAL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"queryBuilder","type":[{"name":"QueryBuilder","namespace":"Doctrine\\DBAL\\Query","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"page_size","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"1000"},{"name":"maximum","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"offset","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"0"}],"return_type":[{"name":"DbalLimitOffsetExtractor","namespace":"Flow\\ETL\\Adapter\\Doctrine","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"DOCTRINE","type":"EXTRACTOR"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBDb25uZWN0aW9uICRjb25uZWN0aW9uCiAqIEBwYXJhbSBpbnQgJHBhZ2Vfc2l6ZSAtIGJlY29tZXMgdGhlIGV4dHJhY3RvcidzIGJhdGNoIHNpemU6IHJvd3MgcGVyIHBhZ2UKICogQHBhcmFtIG51bGx8aW50ICRtYXhpbXVtIC0gbWF4aW11bSBjYW4gYWxzbyBiZSB0YWtlbiBmcm9tIGEgcXVlcnkgYnVpbGRlciwgJG1heGltdW0gaG93ZXZlciBpcyB1c2VkIHJlZ2FyZGxlc3Mgb2YgdGhlIHF1ZXJ5IGJ1aWxkZXIgaWYgaXQncyBzZXQKICogQHBhcmFtIGludCAkb2Zmc2V0IC0gb2Zmc2V0IGNhbiBhbHNvIGJlIHRha2VuIGZyb20gYSBxdWVyeSBidWlsZGVyLCAkb2Zmc2V0IGhvd2V2ZXIgaXMgdXNlZCByZWdhcmRsZXNzIG9mIHRoZSBxdWVyeSBidWlsZGVyIGlmIGl0J3Mgc2V0IHRvIG5vbiAwIHZhbHVlCiAqLw=="},{"repository_path":"src\/adapter\/etl-adapter-doctrine\/src\/Flow\/ETL\/Adapter\/Doctrine\/functions.php","start_line_in_file":107,"slug":"from-dbal-key-set-qb","name":"from_dbal_key_set_qb","namespace":"Flow\\ETL\\Adapter\\Doctrine","parameters":[{"name":"connection","type":[{"name":"Connection","namespace":"Doctrine\\DBAL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"queryBuilder","type":[{"name":"QueryBuilder","namespace":"Doctrine\\DBAL\\Query","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"key_set","type":[{"name":"KeySet","namespace":"Flow\\ETL\\Adapter\\Doctrine\\Pagination","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"DbalKeySetExtractor","namespace":"Flow\\ETL\\Adapter\\Doctrine","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"DOCTRINE","type":"EXTRACTOR"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-doctrine\/src\/Flow\/ETL\/Adapter\/Doctrine\/functions.php","start_line_in_file":117,"slug":"from-dbal-queries","name":"from_dbal_queries","namespace":"Flow\\ETL\\Adapter\\Doctrine","parameters":[{"name":"connection","type":[{"name":"Connection","namespace":"Doctrine\\DBAL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"query","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"parameters_set","type":[{"name":"ParametersSet","namespace":"Flow\\ETL\\Adapter\\Doctrine","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"types","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"}],"return_type":[{"name":"DbalQueryExtractor","namespace":"Flow\\ETL\\Adapter\\Doctrine","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"DOCTRINE","type":"EXTRACTOR"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBudWxsfFBhcmFtZXRlcnNTZXQgJHBhcmFtZXRlcnNfc2V0IC0gZWFjaCBvbmUgcGFyYW1ldGVycyBhcnJheSB3aWxsIGJlIGV2YWx1YXRlZCBhcyBuZXcgcXVlcnkKICogQHBhcmFtIGFycmF5PGludDwwLCBtYXg+fHN0cmluZywgRGJhbEFycmF5VHlwZXxEYmFsUGFyYW1ldGVyVHlwZXxEYmFsVHlwZXxzdHJpbmc+ICR0eXBlcwogKi8="},{"repository_path":"src\/adapter\/etl-adapter-doctrine\/src\/Flow\/ETL\/Adapter\/Doctrine\/functions.php","start_line_in_file":143,"slug":"dbal-from-queries","name":"dbal_from_queries","namespace":"Flow\\ETL\\Adapter\\Doctrine","parameters":[{"name":"connection","type":[{"name":"Connection","namespace":"Doctrine\\DBAL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"query","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"parameters_set","type":[{"name":"ParametersSet","namespace":"Flow\\ETL\\Adapter\\Doctrine","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"types","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"}],"return_type":[{"name":"DbalQueryExtractor","namespace":"Flow\\ETL\\Adapter\\Doctrine","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"DOCTRINE","type":"EXTRACTOR"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBkZXByZWNhdGVkIHVzZSBmcm9tX2RiYWxfcXVlcmllcygpIGluc3RlYWQKICoKICogQHBhcmFtIG51bGx8UGFyYW1ldGVyc1NldCAkcGFyYW1ldGVyc19zZXQgLSBlYWNoIG9uZSBwYXJhbWV0ZXJzIGFycmF5IHdpbGwgYmUgZXZhbHVhdGVkIGFzIG5ldyBxdWVyeQogKiBAcGFyYW0gYXJyYXk8aW50PDAsIG1heD58c3RyaW5nLCBEYmFsQXJyYXlUeXBlfERiYWxQYXJhbWV0ZXJUeXBlfERiYWxUeXBlfHN0cmluZz4gJHR5cGVzCiAqLw=="},{"repository_path":"src\/adapter\/etl-adapter-doctrine\/src\/Flow\/ETL\/Adapter\/Doctrine\/functions.php","start_line_in_file":157,"slug":"from-dbal-query","name":"from_dbal_query","namespace":"Flow\\ETL\\Adapter\\Doctrine","parameters":[{"name":"connection","type":[{"name":"Connection","namespace":"Doctrine\\DBAL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"query","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"parameters","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"types","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"}],"return_type":[{"name":"DbalQueryExtractor","namespace":"Flow\\ETL\\Adapter\\Doctrine","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"DOCTRINE","type":"EXTRACTOR"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheTxzdHJpbmcsIG1peGVkPnxsaXN0PG1peGVkPiAkcGFyYW1ldGVycyAtIEBkZXByZWNhdGVkIHVzZSBEYmFsUXVlcnlFeHRyYWN0b3I6OndpdGhQYXJhbWV0ZXJzKCkgaW5zdGVhZAogKiBAcGFyYW0gYXJyYXk8aW50PDAsIG1heD58c3RyaW5nLCBEYmFsQXJyYXlUeXBlfERiYWxQYXJhbWV0ZXJUeXBlfERiYWxUeXBlfHN0cmluZz4gJHR5cGVzIC0gQGRlcHJlY2F0ZWQgdXNlIERiYWxRdWVyeUV4dHJhY3Rvcjo6d2l0aFR5cGVzKCkgaW5zdGVhZAogKi8="},{"repository_path":"src\/adapter\/etl-adapter-doctrine\/src\/Flow\/ETL\/Adapter\/Doctrine\/functions.php","start_line_in_file":173,"slug":"dbal-from-query","name":"dbal_from_query","namespace":"Flow\\ETL\\Adapter\\Doctrine","parameters":[{"name":"connection","type":[{"name":"Connection","namespace":"Doctrine\\DBAL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"query","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"parameters","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"types","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"}],"return_type":[{"name":"DbalQueryExtractor","namespace":"Flow\\ETL\\Adapter\\Doctrine","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"DOCTRINE","type":"EXTRACTOR"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBkZXByZWNhdGVkIHVzZSBmcm9tX2RiYWxfcXVlcnkoKSBpbnN0ZWFkCiAqCiAqIEBwYXJhbSBhcnJheTxzdHJpbmcsIG1peGVkPnxsaXN0PG1peGVkPiAkcGFyYW1ldGVycyAtIEBkZXByZWNhdGVkIHVzZSBEYmFsUXVlcnlFeHRyYWN0b3I6OndpdGhQYXJhbWV0ZXJzKCkgaW5zdGVhZAogKiBAcGFyYW0gYXJyYXk8aW50PDAsIG1heD58c3RyaW5nLCBEYmFsQXJyYXlUeXBlfERiYWxQYXJhbWV0ZXJUeXBlfERiYWxUeXBlfHN0cmluZz4gJHR5cGVzIC0gQGRlcHJlY2F0ZWQgdXNlIERiYWxRdWVyeUV4dHJhY3Rvcjo6d2l0aFR5cGVzKCkgaW5zdGVhZAogKi8="},{"repository_path":"src\/adapter\/etl-adapter-doctrine\/src\/Flow\/ETL\/Adapter\/Doctrine\/functions.php","start_line_in_file":199,"slug":"to-dbal-table-insert","name":"to_dbal_table_insert","namespace":"Flow\\ETL\\Adapter\\Doctrine","parameters":[{"name":"connection","type":[{"name":"Connection","namespace":"Doctrine\\DBAL","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"table","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"options","type":[{"name":"InsertOptions","namespace":"Flow\\Doctrine\\Bulk","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"DbalLoader","namespace":"Flow\\ETL\\Adapter\\Doctrine","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"DOCTRINE","type":"LOADER"}},{"name":"DocumentationExample","namespace":"Flow\\Documentation\\Attribute","arguments":{"topic":"writing","example":"dbal","option":"upsert"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEluc2VydCBuZXcgcm93cyBpbnRvIGEgZGF0YWJhc2UgdGFibGUuCiAqIEluc2VydCBjYW4gYWxzbyBiZSB1c2VkIGFzIGFuIHVwc2VydCB3aXRoIHRoZSBoZWxwIG9mIEluc2VydE9wdGlvbnMuCiAqIEluc2VydE9wdGlvbnMgYXJlIHBsYXRmb3JtIHNwZWNpZmljLCBzbyBwbGVhc2UgY2hvb3NlIHRoZSByaWdodCBvbmUgZm9yIHlvdXIgZGF0YWJhc2UuCiAqCiAqICAtIE15U1FMSW5zZXJ0T3B0aW9ucwogKiAgLSBQb3N0Z3JlU1FMSW5zZXJ0T3B0aW9ucwogKiAgLSBTcWxpdGVJbnNlcnRPcHRpb25zCiAqCiAqIEluIG9yZGVyIHRvIGNvbnRyb2wgdGhlIHNpemUgb2YgdGhlIHNpbmdsZSBpbnNlcnQsIHVzZSBEYXRhRnJhbWU6OmNodW5rU2l6ZSgpIG1ldGhvZCBqdXN0IGJlZm9yZSBjYWxsaW5nIERhdGFGcmFtZTo6bG9hZCgpLgogKgogKiBAcGFyYW0gYXJyYXk8c3RyaW5nLCBtaXhlZD58Q29ubmVjdGlvbiAkY29ubmVjdGlvbgogKgogKiBAdGhyb3dzIEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbgogKi8="},{"repository_path":"src\/adapter\/etl-adapter-doctrine\/src\/Flow\/ETL\/Adapter\/Doctrine\/functions.php","start_line_in_file":216,"slug":"to-dbal-table-update","name":"to_dbal_table_update","namespace":"Flow\\ETL\\Adapter\\Doctrine","parameters":[{"name":"connection","type":[{"name":"Connection","namespace":"Doctrine\\DBAL","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"table","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"options","type":[{"name":"UpdateOptions","namespace":"Flow\\Doctrine\\Bulk","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"DbalLoader","namespace":"Flow\\ETL\\Adapter\\Doctrine","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"DOCTRINE","type":"LOADER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqICBVcGRhdGUgZXhpc3Rpbmcgcm93cyBpbiBkYXRhYmFzZS4KICoKICogIEluIG9yZGVyIHRvIGNvbnRyb2wgdGhlIHNpemUgb2YgdGhlIHNpbmdsZSByZXF1ZXN0LCB1c2UgRGF0YUZyYW1lOjpjaHVua1NpemUoKSBtZXRob2QganVzdCBiZWZvcmUgY2FsbGluZyBEYXRhRnJhbWU6OmxvYWQoKS4KICoKICogQHBhcmFtIGFycmF5PHN0cmluZywgbWl4ZWQ+fENvbm5lY3Rpb24gJGNvbm5lY3Rpb24KICoKICogQHRocm93cyBJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24KICov"},{"repository_path":"src\/adapter\/etl-adapter-doctrine\/src\/Flow\/ETL\/Adapter\/Doctrine\/functions.php","start_line_in_file":235,"slug":"to-dbal-table-delete","name":"to_dbal_table_delete","namespace":"Flow\\ETL\\Adapter\\Doctrine","parameters":[{"name":"connection","type":[{"name":"Connection","namespace":"Doctrine\\DBAL","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"table","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"DbalLoader","namespace":"Flow\\ETL\\Adapter\\Doctrine","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"DOCTRINE","type":"LOADER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIERlbGV0ZSByb3dzIGZyb20gZGF0YWJhc2UgdGFibGUgYmFzZWQgb24gdGhlIHByb3ZpZGVkIGRhdGEuCiAqCiAqIEluIG9yZGVyIHRvIGNvbnRyb2wgdGhlIHNpemUgb2YgdGhlIHNpbmdsZSByZXF1ZXN0LCB1c2UgRGF0YUZyYW1lOjpjaHVua1NpemUoKSBtZXRob2QganVzdCBiZWZvcmUgY2FsbGluZyBEYXRhRnJhbWU6OmxvYWQoKS4KICoKICogQHBhcmFtIGFycmF5PHN0cmluZywgbWl4ZWQ+fENvbm5lY3Rpb24gJGNvbm5lY3Rpb24KICoKICogQHRocm93cyBJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24KICov"},{"repository_path":"src\/adapter\/etl-adapter-doctrine\/src\/Flow\/ETL\/Adapter\/Doctrine\/functions.php","start_line_in_file":250,"slug":"to-dbal-schema-table","name":"to_dbal_schema_table","namespace":"Flow\\ETL\\Adapter\\Doctrine","parameters":[{"name":"schema","type":[{"name":"Schema","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"table_name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"table_options","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"types_map","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"}],"return_type":[{"name":"Table","namespace":"Doctrine\\DBAL\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"DOCTRINE","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENvbnZlcnRzIGEgRmxvd1xFVExcU2NoZW1hIHRvIGEgRG9jdHJpbmVcREJBTFxTY2hlbWFcVGFibGUuCiAqCiAqIEBwYXJhbSBTY2hlbWEgJHNjaGVtYQogKiBAcGFyYW0gYXJyYXk8c3RyaW5nLCBtaXhlZD4gJHRhYmxlX29wdGlvbnMKICogQHBhcmFtIGFycmF5PGNsYXNzLXN0cmluZzxcRmxvd1xUeXBlc1xUeXBlPG1peGVkPj4sIGNsYXNzLXN0cmluZzxcRG9jdHJpbmVcREJBTFxUeXBlc1xUeXBlPj4gJHR5cGVzX21hcAogKi8="},{"repository_path":"src\/adapter\/etl-adapter-doctrine\/src\/Flow\/ETL\/Adapter\/Doctrine\/functions.php","start_line_in_file":267,"slug":"table-schema-to-flow-schema","name":"table_schema_to_flow_schema","namespace":"Flow\\ETL\\Adapter\\Doctrine","parameters":[{"name":"table","type":[{"name":"Table","namespace":"Doctrine\\DBAL\\Schema","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"types_map","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"}],"return_type":[{"name":"Schema","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"DOCTRINE","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENvbnZlcnRzIGEgRG9jdHJpbmVcREJBTFxTY2hlbWFcVGFibGUgdG8gYSBGbG93XEVUTFxTY2hlbWEuCiAqCiAqIEBwYXJhbSBhcnJheTxjbGFzcy1zdHJpbmc8XEZsb3dcVHlwZXNcVHlwZTxtaXhlZD4+LCBjbGFzcy1zdHJpbmc8XERvY3RyaW5lXERCQUxcVHlwZXNcVHlwZT4+ICR0eXBlc19tYXAKICoKICogQHJldHVybiBTY2hlbWEKICov"},{"repository_path":"src\/adapter\/etl-adapter-doctrine\/src\/Flow\/ETL\/Adapter\/Doctrine\/functions.php","start_line_in_file":278,"slug":"postgresql-insert-options","name":"postgresql_insert_options","namespace":"Flow\\ETL\\Adapter\\Doctrine","parameters":[{"name":"skip_conflicts","type":[{"name":"bool","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"constraint","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"conflict_columns","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"update_columns","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"}],"return_type":[{"name":"PostgreSQLInsertOptions","namespace":"Flow\\Doctrine\\Bulk\\Dialect","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"DOCTRINE","type":"HELPER"}},{"name":"DocumentationExample","namespace":"Flow\\Documentation\\Attribute","arguments":{"topic":"writing","example":"dbal","option":"upsert"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheTxzdHJpbmc+ICRjb25mbGljdF9jb2x1bW5zCiAqIEBwYXJhbSBhcnJheTxzdHJpbmc+ICR1cGRhdGVfY29sdW1ucwogKi8="},{"repository_path":"src\/adapter\/etl-adapter-doctrine\/src\/Flow\/ETL\/Adapter\/Doctrine\/functions.php","start_line_in_file":291,"slug":"mysql-insert-options","name":"mysql_insert_options","namespace":"Flow\\ETL\\Adapter\\Doctrine","parameters":[{"name":"skip_conflicts","type":[{"name":"bool","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"upsert","type":[{"name":"bool","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"update_columns","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"}],"return_type":[{"name":"MySQLInsertOptions","namespace":"Flow\\Doctrine\\Bulk\\Dialect","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"DOCTRINE","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheTxzdHJpbmc+ICR1cGRhdGVfY29sdW1ucwogKi8="},{"repository_path":"src\/adapter\/etl-adapter-doctrine\/src\/Flow\/ETL\/Adapter\/Doctrine\/functions.php","start_line_in_file":304,"slug":"sqlite-insert-options","name":"sqlite_insert_options","namespace":"Flow\\ETL\\Adapter\\Doctrine","parameters":[{"name":"skip_conflicts","type":[{"name":"bool","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"conflict_columns","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"update_columns","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"}],"return_type":[{"name":"SqliteInsertOptions","namespace":"Flow\\Doctrine\\Bulk\\Dialect","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"DOCTRINE","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheTxzdHJpbmc+ICRjb25mbGljdF9jb2x1bW5zCiAqIEBwYXJhbSBhcnJheTxzdHJpbmc+ICR1cGRhdGVfY29sdW1ucwogKi8="},{"repository_path":"src\/adapter\/etl-adapter-doctrine\/src\/Flow\/ETL\/Adapter\/Doctrine\/functions.php","start_line_in_file":317,"slug":"postgresql-update-options","name":"postgresql_update_options","namespace":"Flow\\ETL\\Adapter\\Doctrine","parameters":[{"name":"primary_key_columns","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"update_columns","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"}],"return_type":[{"name":"PostgreSQLUpdateOptions","namespace":"Flow\\Doctrine\\Bulk\\Dialect","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"DOCTRINE","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheTxzdHJpbmc+ICRwcmltYXJ5X2tleV9jb2x1bW5zCiAqIEBwYXJhbSBhcnJheTxzdHJpbmc+ICR1cGRhdGVfY29sdW1ucwogKi8="},{"repository_path":"src\/adapter\/etl-adapter-doctrine\/src\/Flow\/ETL\/Adapter\/Doctrine\/functions.php","start_line_in_file":338,"slug":"to-dbal-transaction","name":"to_dbal_transaction","namespace":"Flow\\ETL\\Adapter\\Doctrine","parameters":[{"name":"connection","type":[{"name":"Connection","namespace":"Doctrine\\DBAL","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"sinks","type":[{"name":"Loader","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false},{"name":"Sink","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"Transactional","namespace":"Flow\\ETL\\Sink","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"DOCTRINE","type":"LOADER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIFdyaXRlIGV2ZXJ5IHNpbmsgd2l0aGluIGRhdGFiYXNlIHRyYW5zYWN0aW9ucy4KICogRWFjaCBiYXRjaCBvZiByb3dzIGlzIHdyaXR0ZW4gaW4gaXRzIG93biB0cmFuc2FjdGlvbjsgcm93cyBhIHNpbmsncyBUcmFuc2Zvcm1hdGlvbiBkZWxpdmVycyB3aGVuCiAqIHRoZSBydW4gZW5kcyAoYmxvY2tpbmcgb3BlcmF0aW9ucyBkcmFpbiB0aGVyZSkgYXJlIGNvbW1pdHRlZCBpbiBvbmUgZmluYWwgdHJhbnNhY3Rpb24uCiAqIElmIGFueSBzaW5rIGZhaWxzLCB0aGUgb3BlbiB0cmFuc2FjdGlvbiBpcyByb2xsZWQgYmFjay4KICogQSBwbGFpbiBMb2FkZXIgY2hpbGQgaXMgYSBiYXJlIHNpbmsgcm9vdDsgYSB0b190cmFuc2Zvcm1hdGlvbiguLi4pIGNoaWxkIGRlbGl2ZXJzIGluc2lkZSB0aGUgc2FtZQogKiB0cmFuc2FjdGlvbi4gRXZlcnkgY2hpbGQncyBsb2FkZXIgbXVzdCB1c2UgdGhlIHNhbWUgY29ubmVjdGlvbiBhcyB0aGUgdHJhbnNhY3Rpb246IHBhc3Mgb25lIGxpdmUKICogQ29ubmVjdGlvbiB0byBib3RoIC0gYSBsb2FkZXIgYnVpbHQgZnJvbSBhcnJheSBwYXJhbXMgb3BlbnMgaXRzIG93biBjb25uZWN0aW9uIGFuZCBlc2NhcGVzIHRoZQogKiB0cmFuc2FjdGlvbi4KICoKICogQHBhcmFtIGFycmF5PHN0cmluZywgbWl4ZWQ+fENvbm5lY3Rpb24gJGNvbm5lY3Rpb24KICogQHBhcmFtIExvYWRlcnxTaW5rIC4uLiRzaW5rcyAtIHNpbmtzIHdyaXR0ZW4gd2l0aGluIHRoZSB0cmFuc2FjdGlvbgogKgogKiBAdGhyb3dzIEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbgogKi8="},{"repository_path":"src\/adapter\/etl-adapter-doctrine\/src\/Flow\/ETL\/Adapter\/Doctrine\/functions.php","start_line_in_file":347,"slug":"pagination-key-asc","name":"pagination_key_asc","namespace":"Flow\\ETL\\Adapter\\Doctrine","parameters":[{"name":"column","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"type","type":[{"name":"ParameterType","namespace":"Doctrine\\DBAL","is_nullable":false,"is_variadic":false},{"name":"Type","namespace":"Doctrine\\DBAL\\Types","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Doctrine\\DBAL\\ParameterType::..."}],"return_type":[{"name":"Key","namespace":"Flow\\ETL\\Adapter\\Doctrine\\Pagination","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"DOCTRINE","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-doctrine\/src\/Flow\/ETL\/Adapter\/Doctrine\/functions.php","start_line_in_file":353,"slug":"pagination-key-desc","name":"pagination_key_desc","namespace":"Flow\\ETL\\Adapter\\Doctrine","parameters":[{"name":"column","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"type","type":[{"name":"ParameterType","namespace":"Doctrine\\DBAL","is_nullable":false,"is_variadic":false},{"name":"Type","namespace":"Doctrine\\DBAL\\Types","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Doctrine\\DBAL\\ParameterType::..."}],"return_type":[{"name":"Key","namespace":"Flow\\ETL\\Adapter\\Doctrine\\Pagination","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"DOCTRINE","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-doctrine\/src\/Flow\/ETL\/Adapter\/Doctrine\/functions.php","start_line_in_file":359,"slug":"pagination-key-set","name":"pagination_key_set","namespace":"Flow\\ETL\\Adapter\\Doctrine","parameters":[{"name":"keys","type":[{"name":"Key","namespace":"Flow\\ETL\\Adapter\\Doctrine\\Pagination","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"KeySet","namespace":"Flow\\ETL\\Adapter\\Doctrine\\Pagination","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"DOCTRINE","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-excel\/src\/Flow\/ETL\/Adapter\/Excel\/DSL\/functions.php","start_line_in_file":22,"slug":"from-excel","name":"from_excel","namespace":"Flow\\ETL\\Adapter\\Excel\\DSL","parameters":[{"name":"path","type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"filesystem","type":[{"name":"Filesystem","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Filesystem\\Local\\NativeLocalFilesystem::..."}],"return_type":[{"name":"ExcelExtractor","namespace":"Flow\\ETL\\Adapter\\Excel","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"EXCEL","type":"EXTRACTOR"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-excel\/src\/Flow\/ETL\/Adapter\/Excel\/DSL\/functions.php","start_line_in_file":28,"slug":"to-excel","name":"to_excel","namespace":"Flow\\ETL\\Adapter\\Excel\\DSL","parameters":[{"name":"path","type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"filesystem","type":[{"name":"Filesystem","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Filesystem\\Local\\NativeLocalFilesystem::..."}],"return_type":[{"name":"ExcelLoader","namespace":"Flow\\ETL\\Adapter\\Excel","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"EXCEL","type":"LOADER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-excel\/src\/Flow\/ETL\/Adapter\/Excel\/DSL\/functions.php","start_line_in_file":34,"slug":"is-valid-excel-sheet-name","name":"is_valid_excel_sheet_name","namespace":"Flow\\ETL\\Adapter\\Excel\\DSL","parameters":[{"name":"sheet_name","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"IsValidExcelSheetName","namespace":"Flow\\ETL\\Adapter\\Excel\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"EXCEL","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-google-sheet\/src\/Flow\/ETL\/Adapter\/GoogleSheet\/functions.php","start_line_in_file":22,"slug":"from-google-sheet","name":"from_google_sheet","namespace":"Flow\\ETL\\Adapter\\GoogleSheet","parameters":[{"name":"auth_config","type":[{"name":"Sheets","namespace":"Google\\Service","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"spreadsheet_id","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"sheet_name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"with_header","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"rows_per_page","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"1000"},{"name":"options","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"}],"return_type":[{"name":"GoogleSheetExtractor","namespace":"Flow\\ETL\\Adapter\\GoogleSheet","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"GOOGLE_SHEET","type":"EXTRACTOR"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheXt0eXBlOiBzdHJpbmcsIHByb2plY3RfaWQ6IHN0cmluZywgcHJpdmF0ZV9rZXlfaWQ6IHN0cmluZywgcHJpdmF0ZV9rZXk6IHN0cmluZywgY2xpZW50X2VtYWlsOiBzdHJpbmcsIGNsaWVudF9pZDogc3RyaW5nLCBhdXRoX3VyaTogc3RyaW5nLCB0b2tlbl91cmk6IHN0cmluZywgYXV0aF9wcm92aWRlcl94NTA5X2NlcnRfdXJsOiBzdHJpbmcsIGNsaWVudF94NTA5X2NlcnRfdXJsOiBzdHJpbmd9fFNoZWV0cyAkYXV0aF9jb25maWcKICogQHBhcmFtIHN0cmluZyAkc3ByZWFkc2hlZXRfaWQKICogQHBhcmFtIHN0cmluZyAkc2hlZXRfbmFtZQogKiBAcGFyYW0gYm9vbCAkd2l0aF9oZWFkZXIgLSBAZGVwcmVjYXRlZCB1c2Ugd2l0aEhlYWRlciBtZXRob2QgaW5zdGVhZAogKiBAcGFyYW0gaW50ICRyb3dzX3Blcl9wYWdlIC0gaG93IG1hbnkgcm93cyBwZXIgcGFnZSB0byBmZXRjaCBmcm9tIEdvb2dsZSBTaGVldHMgQVBJIC0gQGRlcHJlY2F0ZWQgdXNlIHdpdGhSb3dzUGVyUGFnZSBtZXRob2QgaW5zdGVhZAogKiBAcGFyYW0gYXJyYXl7ZGF0ZVRpbWVSZW5kZXJPcHRpb24\/OiBzdHJpbmcsIG1ham9yRGltZW5zaW9uPzogc3RyaW5nLCB2YWx1ZVJlbmRlck9wdGlvbj86IHN0cmluZ30gJG9wdGlvbnMgLSBAZGVwcmVjYXRlZCB1c2Ugd2l0aE9wdGlvbnMgbWV0aG9kIGluc3RlYWQKICov"},{"repository_path":"src\/adapter\/etl-adapter-google-sheet\/src\/Flow\/ETL\/Adapter\/GoogleSheet\/functions.php","start_line_in_file":56,"slug":"from-google-sheet-columns","name":"from_google_sheet_columns","namespace":"Flow\\ETL\\Adapter\\GoogleSheet","parameters":[{"name":"auth_config","type":[{"name":"Sheets","namespace":"Google\\Service","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"spreadsheet_id","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"sheet_name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"start_range_column","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"end_range_column","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"with_header","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"rows_per_page","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"1000"},{"name":"options","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"}],"return_type":[{"name":"GoogleSheetExtractor","namespace":"Flow\\ETL\\Adapter\\GoogleSheet","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"GOOGLE_SHEET","type":"EXTRACTOR"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheXt0eXBlOiBzdHJpbmcsIHByb2plY3RfaWQ6IHN0cmluZywgcHJpdmF0ZV9rZXlfaWQ6IHN0cmluZywgcHJpdmF0ZV9rZXk6IHN0cmluZywgY2xpZW50X2VtYWlsOiBzdHJpbmcsIGNsaWVudF9pZDogc3RyaW5nLCBhdXRoX3VyaTogc3RyaW5nLCB0b2tlbl91cmk6IHN0cmluZywgYXV0aF9wcm92aWRlcl94NTA5X2NlcnRfdXJsOiBzdHJpbmcsIGNsaWVudF94NTA5X2NlcnRfdXJsOiBzdHJpbmd9fFNoZWV0cyAkYXV0aF9jb25maWcKICogQHBhcmFtIHN0cmluZyAkc3ByZWFkc2hlZXRfaWQKICogQHBhcmFtIHN0cmluZyAkc2hlZXRfbmFtZQogKiBAcGFyYW0gc3RyaW5nICRzdGFydF9yYW5nZV9jb2x1bW4KICogQHBhcmFtIHN0cmluZyAkZW5kX3JhbmdlX2NvbHVtbgogKiBAcGFyYW0gYm9vbCAkd2l0aF9oZWFkZXIgLSBAZGVwcmVjYXRlZCB1c2Ugd2l0aEhlYWRlciBtZXRob2QgaW5zdGVhZAogKiBAcGFyYW0gaW50ICRyb3dzX3Blcl9wYWdlIC0gaG93IG1hbnkgcm93cyBwZXIgcGFnZSB0byBmZXRjaCBmcm9tIEdvb2dsZSBTaGVldHMgQVBJLCBkZWZhdWx0IDEwMDAgLSBAZGVwcmVjYXRlZCB1c2Ugd2l0aFJvd3NQZXJQYWdlIG1ldGhvZCBpbnN0ZWFkCiAqIEBwYXJhbSBhcnJheXtkYXRlVGltZVJlbmRlck9wdGlvbj86IHN0cmluZywgbWFqb3JEaW1lbnNpb24\/OiBzdHJpbmcsIHZhbHVlUmVuZGVyT3B0aW9uPzogc3RyaW5nfSAkb3B0aW9ucyAtIEBkZXByZWNhdGVkIHVzZSB3aXRoT3B0aW9ucyBtZXRob2QgaW5zdGVhZAogKi8="},{"repository_path":"src\/adapter\/etl-adapter-http\/src\/Flow\/ETL\/Adapter\/Http\/DSL\/functions.php","start_line_in_file":35,"slug":"from-dynamic-http-requests","name":"from_dynamic_http_requests","namespace":"Flow\\ETL\\Adapter\\Http","parameters":[{"name":"client","type":[{"name":"ClientInterface","namespace":"Psr\\Http\\Client","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"requestFactory","type":[{"name":"NextRequestFactory","namespace":"Flow\\ETL\\Adapter\\Http\\DynamicExtractor","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"schema","type":[{"name":"Schema","namespace":"Flow\\ETL","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"PsrHttpClientDynamicExtractor","namespace":"Flow\\ETL\\Adapter\\Http","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"HTTP","type":"EXTRACTOR"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-http\/src\/Flow\/ETL\/Adapter\/Http\/DSL\/functions.php","start_line_in_file":53,"slug":"from-static-http-requests","name":"from_static_http_requests","namespace":"Flow\\ETL\\Adapter\\Http","parameters":[{"name":"client","type":[{"name":"ClientInterface","namespace":"Psr\\Http\\Client","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"requests","type":[{"name":"iterable","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"schema","type":[{"name":"Schema","namespace":"Flow\\ETL","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"PsrHttpClientStaticExtractor","namespace":"Flow\\ETL\\Adapter\\Http","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"HTTP","type":"EXTRACTOR"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBpdGVyYWJsZTxSZXF1ZXN0SW50ZXJmYWNlPiAkcmVxdWVzdHMKICov"},{"repository_path":"src\/adapter\/etl-adapter-http\/src\/Flow\/ETL\/Adapter\/Http\/DSL\/functions.php","start_line_in_file":68,"slug":"from-http-paginated","name":"from_http_paginated","namespace":"Flow\\ETL\\Adapter\\Http","parameters":[{"name":"client","type":[{"name":"ClientInterface","namespace":"Psr\\Http\\Client","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"request","type":[{"name":"RequestInterface","namespace":"Psr\\Http\\Message","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"paginator","type":[{"name":"Paginator","namespace":"Flow\\ETL\\Adapter\\Http\\Pagination","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"schema","type":[{"name":"Schema","namespace":"Flow\\ETL","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"PsrHttpClientPaginatedExtractor","namespace":"Flow\\ETL\\Adapter\\Http","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"HTTP","type":"EXTRACTOR"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-http\/src\/Flow\/ETL\/Adapter\/Http\/DSL\/functions.php","start_line_in_file":84,"slug":"http-pagination-page-number","name":"http_pagination_page_number","namespace":"Flow\\ETL\\Adapter\\Http","parameters":[{"name":"inject","type":[{"name":"RequestOption","namespace":"Flow\\ETL\\Adapter\\Http\\Pagination","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"start_page","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"1"},{"name":"page_size","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"size_option","type":[{"name":"RequestOption","namespace":"Flow\\ETL\\Adapter\\Http\\Pagination","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"inject_on_first_request","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"records_path","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"stop_on_client_error","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"stop_when","type":[{"name":"StopWhen","namespace":"Flow\\ETL\\Adapter\\Http\\Pagination","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Paginator","namespace":"Flow\\ETL\\Adapter\\Http\\Pagination","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"HTTP","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-http\/src\/Flow\/ETL\/Adapter\/Http\/DSL\/functions.php","start_line_in_file":104,"slug":"http-pagination-offset","name":"http_pagination_offset","namespace":"Flow\\ETL\\Adapter\\Http","parameters":[{"name":"offset_option","type":[{"name":"RequestOption","namespace":"Flow\\ETL\\Adapter\\Http\\Pagination","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"limit_option","type":[{"name":"RequestOption","namespace":"Flow\\ETL\\Adapter\\Http\\Pagination","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"limit","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"start_offset","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"0"},{"name":"total_path","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"inject_on_first_request","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"stop_on_client_error","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"stop_when","type":[{"name":"StopWhen","namespace":"Flow\\ETL\\Adapter\\Http\\Pagination","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Paginator","namespace":"Flow\\ETL\\Adapter\\Http\\Pagination","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"HTTP","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-http\/src\/Flow\/ETL\/Adapter\/Http\/DSL\/functions.php","start_line_in_file":124,"slug":"http-pagination-cursor","name":"http_pagination_cursor","namespace":"Flow\\ETL\\Adapter\\Http","parameters":[{"name":"cursor_path","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"inject","type":[{"name":"RequestOption","namespace":"Flow\\ETL\\Adapter\\Http\\Pagination","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"stop_on_client_error","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"stop_when","type":[{"name":"StopWhen","namespace":"Flow\\ETL\\Adapter\\Http\\Pagination","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Paginator","namespace":"Flow\\ETL\\Adapter\\Http\\Pagination","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"HTTP","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-http\/src\/Flow\/ETL\/Adapter\/Http\/DSL\/functions.php","start_line_in_file":140,"slug":"http-pagination-next-url","name":"http_pagination_next_url","namespace":"Flow\\ETL\\Adapter\\Http","parameters":[{"name":"path","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"stop_on_client_error","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"stop_when","type":[{"name":"StopWhen","namespace":"Flow\\ETL\\Adapter\\Http\\Pagination","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Paginator","namespace":"Flow\\ETL\\Adapter\\Http\\Pagination","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"HTTP","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-http\/src\/Flow\/ETL\/Adapter\/Http\/DSL\/functions.php","start_line_in_file":155,"slug":"http-pagination-link-header","name":"http_pagination_link_header","namespace":"Flow\\ETL\\Adapter\\Http","parameters":[{"name":"rel","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'next'"},{"name":"stop_on_client_error","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"stop_when","type":[{"name":"StopWhen","namespace":"Flow\\ETL\\Adapter\\Http\\Pagination","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Paginator","namespace":"Flow\\ETL\\Adapter\\Http\\Pagination","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"HTTP","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-http\/src\/Flow\/ETL\/Adapter\/Http\/DSL\/functions.php","start_line_in_file":164,"slug":"http-pagination-last-record-cursor","name":"http_pagination_last_record_cursor","namespace":"Flow\\ETL\\Adapter\\Http","parameters":[{"name":"record_path","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"inject","type":[{"name":"RequestOption","namespace":"Flow\\ETL\\Adapter\\Http\\Pagination","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"stop_on_client_error","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"stop_when","type":[{"name":"StopWhen","namespace":"Flow\\ETL\\Adapter\\Http\\Pagination","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Paginator","namespace":"Flow\\ETL\\Adapter\\Http\\Pagination","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"HTTP","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-http\/src\/Flow\/ETL\/Adapter\/Http\/DSL\/functions.php","start_line_in_file":180,"slug":"http-request-option-query","name":"http_request_option_query","namespace":"Flow\\ETL\\Adapter\\Http","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"RequestOption","namespace":"Flow\\ETL\\Adapter\\Http\\Pagination","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"HTTP","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-http\/src\/Flow\/ETL\/Adapter\/Http\/DSL\/functions.php","start_line_in_file":186,"slug":"http-request-option-header","name":"http_request_option_header","namespace":"Flow\\ETL\\Adapter\\Http","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"RequestOption","namespace":"Flow\\ETL\\Adapter\\Http\\Pagination","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"HTTP","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-http\/src\/Flow\/ETL\/Adapter\/Http\/DSL\/functions.php","start_line_in_file":192,"slug":"http-request-option-body","name":"http_request_option_body","namespace":"Flow\\ETL\\Adapter\\Http","parameters":[{"name":"path","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"stream_factory","type":[{"name":"StreamFactoryInterface","namespace":"Psr\\Http\\Message","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"RequestOption","namespace":"Flow\\ETL\\Adapter\\Http\\Pagination","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"HTTP","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-http\/src\/Flow\/ETL\/Adapter\/Http\/DSL\/functions.php","start_line_in_file":198,"slug":"http-request-option-uri","name":"http_request_option_uri","namespace":"Flow\\ETL\\Adapter\\Http","parameters":[],"return_type":[{"name":"RequestOption","namespace":"Flow\\ETL\\Adapter\\Http\\Pagination","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"HTTP","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-http\/src\/Flow\/ETL\/Adapter\/Http\/DSL\/functions.php","start_line_in_file":204,"slug":"http-stop-when-path-missing","name":"http_stop_when_path_missing","namespace":"Flow\\ETL\\Adapter\\Http","parameters":[{"name":"path","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"StopWhen","namespace":"Flow\\ETL\\Adapter\\Http\\Pagination","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"HTTP","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-http\/src\/Flow\/ETL\/Adapter\/Http\/DSL\/functions.php","start_line_in_file":210,"slug":"http-stop-when-empty-path","name":"http_stop_when_empty_path","namespace":"Flow\\ETL\\Adapter\\Http","parameters":[{"name":"path","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"StopWhen","namespace":"Flow\\ETL\\Adapter\\Http\\Pagination","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"HTTP","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-http\/src\/Flow\/ETL\/Adapter\/Http\/DSL\/functions.php","start_line_in_file":216,"slug":"http-stop-when-flag-false","name":"http_stop_when_flag_false","namespace":"Flow\\ETL\\Adapter\\Http","parameters":[{"name":"path","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"StopWhen","namespace":"Flow\\ETL\\Adapter\\Http\\Pagination","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"HTTP","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-http\/src\/Flow\/ETL\/Adapter\/Http\/DSL\/functions.php","start_line_in_file":222,"slug":"http-stop-when-flag-true","name":"http_stop_when_flag_true","namespace":"Flow\\ETL\\Adapter\\Http","parameters":[{"name":"path","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"StopWhen","namespace":"Flow\\ETL\\Adapter\\Http\\Pagination","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"HTTP","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-http\/src\/Flow\/ETL\/Adapter\/Http\/DSL\/functions.php","start_line_in_file":228,"slug":"http-stop-when-total-reached","name":"http_stop_when_total_reached","namespace":"Flow\\ETL\\Adapter\\Http","parameters":[{"name":"total_path","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"StopWhen","namespace":"Flow\\ETL\\Adapter\\Http\\Pagination","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"HTTP","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-http\/src\/Flow\/ETL\/Adapter\/Http\/DSL\/functions.php","start_line_in_file":234,"slug":"http-stop-when-max-pages","name":"http_stop_when_max_pages","namespace":"Flow\\ETL\\Adapter\\Http","parameters":[{"name":"pages","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"StopWhen","namespace":"Flow\\ETL\\Adapter\\Http\\Pagination","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"HTTP","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-http\/src\/Flow\/ETL\/Adapter\/Http\/DSL\/functions.php","start_line_in_file":240,"slug":"http-stop-when-max-results","name":"http_stop_when_max_results","namespace":"Flow\\ETL\\Adapter\\Http","parameters":[{"name":"count","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"StopWhen","namespace":"Flow\\ETL\\Adapter\\Http\\Pagination","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"HTTP","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-json\/src\/Flow\/ETL\/Adapter\/JSON\/functions.php","start_line_in_file":32,"slug":"from-json","name":"from_json","namespace":"Flow\\ETL\\Adapter\\JSON","parameters":[{"name":"path","type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"pointer","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"schema","type":[{"name":"Schema","namespace":"Flow\\ETL","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"filesystem","type":[{"name":"Filesystem","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Filesystem\\Local\\NativeLocalFilesystem::..."}],"return_type":[{"name":"JsonExtractor","namespace":"Flow\\ETL\\Adapter\\JSON\\JSONMachine","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"JSON","type":"EXTRACTOR"}},{"name":"DocumentationExample","namespace":"Flow\\Documentation\\Attribute","arguments":{"topic":"reading","example":"json"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBQYXRofHN0cmluZyAkcGF0aCAtIHN0cmluZyBpcyBpbnRlcm5hbGx5IHR1cm5lZCBpbnRvIHN0cmVhbQogKiBAcGFyYW0gP3N0cmluZyAkcG9pbnRlciAtIGlmIHlvdSB3YW50IHRvIGl0ZXJhdGUgb25seSByZXN1bHRzIG9mIGEgc3VidHJlZSwgdXNlIGEgcG9pbnRlciwgcmVhZCBtb3JlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9oYWxheGEvanNvbi1tYWNoaW5lI3BhcnNpbmctYS1zdWJ0cmVlIC0gQGRlcHJlY2F0ZSB1c2Ugd2l0aFBvaW50ZXIgbWV0aG9kIGluc3RlYWQKICogQHBhcmFtIG51bGx8U2NoZW1hICRzY2hlbWEgLSBlbmZvcmNlIHNjaGVtYSBvbiB0aGUgZXh0cmFjdGVkIGRhdGEgLSBAZGVwcmVjYXRlIHVzZSB3aXRoU2NoZW1hIG1ldGhvZCBpbnN0ZWFkCiAqLw=="},{"repository_path":"src\/adapter\/etl-adapter-json\/src\/Flow\/ETL\/Adapter\/JSON\/functions.php","start_line_in_file":58,"slug":"from-json-lines","name":"from_json_lines","namespace":"Flow\\ETL\\Adapter\\JSON","parameters":[{"name":"path","type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"filesystem","type":[{"name":"Filesystem","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Filesystem\\Local\\NativeLocalFilesystem::..."}],"return_type":[{"name":"JsonExtractor","namespace":"Flow\\ETL\\Adapter\\JSON\\JSONMachine","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"JSON","type":"EXTRACTOR"}},{"name":"DocumentationExample","namespace":"Flow\\Documentation\\Attribute","arguments":{"topic":"reading","example":"jsonl"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIFVzZWQgdG8gcmVhZCBmcm9tIGEgSlNPTiBsaW5lcyBodHRwczovL2pzb25saW5lcy5vcmcvIGZvcm1hdHRlZCBmaWxlLgogKgogKiBAcGFyYW0gUGF0aHxzdHJpbmcgJHBhdGggLSBzdHJpbmcgaXMgaW50ZXJuYWxseSB0dXJuZWQgaW50byBzdHJlYW0KICov"},{"repository_path":"src\/adapter\/etl-adapter-json\/src\/Flow\/ETL\/Adapter\/JSON\/functions.php","start_line_in_file":72,"slug":"to-json","name":"to_json","namespace":"Flow\\ETL\\Adapter\\JSON","parameters":[{"name":"path","type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"flags","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"4194304"},{"name":"date_time_format","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'Y-m-d\\\\TH:i:sP'"},{"name":"put_rows_in_new_lines","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"filesystem","type":[{"name":"Filesystem","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Filesystem\\Local\\NativeLocalFilesystem::..."}],"return_type":[{"name":"JsonLoader","namespace":"Flow\\ETL\\Adapter\\JSON","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"JSON","type":"LOADER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBQYXRofHN0cmluZyAkcGF0aAogKiBAcGFyYW0gaW50ICRmbGFncyAtIFBIUCBKU09OIEZsYWdzIC0gQGRlcHJlY2F0ZSB1c2Ugd2l0aEZsYWdzIG1ldGhvZCBpbnN0ZWFkCiAqIEBwYXJhbSBzdHJpbmcgJGRhdGVfdGltZV9mb3JtYXQgLSBmb3JtYXQgZm9yIERhdGVUaW1lSW50ZXJmYWNlOjpmb3JtYXQoKSAtIEBkZXByZWNhdGUgdXNlIHdpdGhEYXRlVGltZUZvcm1hdCBtZXRob2QgaW5zdGVhZAogKiBAcGFyYW0gYm9vbCAkcHV0X3Jvd3NfaW5fbmV3X2xpbmVzIC0gaWYgeW91IHdhbnQgdG8gcHV0IGVhY2ggcm93IGluIGEgbmV3IGxpbmUgLSBAZGVwcmVjYXRlIHVzZSB3aXRoUm93c0luTmV3TGluZXMgbWV0aG9kIGluc3RlYWQKICoKICogQHJldHVybiBKc29uTG9hZGVyCiAqLw=="},{"repository_path":"src\/adapter\/etl-adapter-json\/src\/Flow\/ETL\/Adapter\/JSON\/functions.php","start_line_in_file":93,"slug":"to-json-lines","name":"to_json_lines","namespace":"Flow\\ETL\\Adapter\\JSON","parameters":[{"name":"path","type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"filesystem","type":[{"name":"Filesystem","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Filesystem\\Local\\NativeLocalFilesystem::..."}],"return_type":[{"name":"JsonLoader","namespace":"Flow\\ETL\\Adapter\\JSON","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"JSON","type":"LOADER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIFVzZWQgdG8gd3JpdGUgdG8gYSBKU09OIGxpbmVzIGh0dHBzOi8vanNvbmxpbmVzLm9yZy8gZm9ybWF0dGVkIGZpbGUuCiAqCiAqIEBwYXJhbSBQYXRofHN0cmluZyAkcGF0aAogKgogKiBAcmV0dXJuIEpzb25Mb2FkZXIKICov"},{"repository_path":"src\/adapter\/etl-adapter-json\/src\/Flow\/ETL\/Adapter\/JSON\/functions.php","start_line_in_file":107,"slug":"schema-from-json-schema","name":"schema_from_json_schema","namespace":"Flow\\ETL\\Adapter\\JSON","parameters":[{"name":"json_schema","type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"client","type":[{"name":"ClientInterface","namespace":"Psr\\Http\\Client","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"request_factory","type":[{"name":"RequestFactoryInterface","namespace":"Psr\\Http\\Message","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"filesystem","type":[{"name":"Filesystem","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Filesystem\\Local\\NativeLocalFilesystem::..."}],"return_type":[{"name":"Schema","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"JSON","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENvbnZlcnQgYSBKU09OIFNjaGVtYSAoaHR0cHM6Ly9qc29uLXNjaGVtYS5vcmcpIGRvY3VtZW50IGludG8gYSBGbG93IFNjaGVtYS4KICoKICogQHBhcmFtIGFycmF5PHN0cmluZywgbWl4ZWQ+fFBhdGh8c3RyaW5nICRqc29uX3NjaGVtYSAtIGRlY29kZWQgZG9jdW1lbnQsIHJhdyBKU09OIGRvY3VtZW50IG9yIGEgcGF0aCB0byBhIHNjaGVtYSBmaWxlCiAqIEBwYXJhbSBudWxsfENsaWVudEludGVyZmFjZSAkY2xpZW50IC0gUFNSLTE4IGh0dHAgY2xpZW50LCByZXF1aXJlZCB0byByZXNvbHZlIHJlbW90ZSBodHRwKHMpIHJlZmVyZW5jZXMKICogQHBhcmFtIG51bGx8UmVxdWVzdEZhY3RvcnlJbnRlcmZhY2UgJHJlcXVlc3RfZmFjdG9yeSAtIFBTUi0xNyByZXF1ZXN0IGZhY3RvcnksIHJlcXVpcmVkIHRvIHJlc29sdmUgcmVtb3RlIGh0dHAocykgcmVmZXJlbmNlcwogKiBAcGFyYW0gRmlsZXN5c3RlbSAkZmlsZXN5c3RlbSAtIGZpbGVzeXN0ZW0gdXNlZCB0byByZWFkIGxvY2FsIHNjaGVtYSByZWZlcmVuY2VzCiAqLw=="},{"repository_path":"src\/adapter\/etl-adapter-json\/src\/Flow\/ETL\/Adapter\/JSON\/functions.php","start_line_in_file":122,"slug":"schema-to-json-schema","name":"schema_to_json_schema","namespace":"Flow\\ETL\\Adapter\\JSON","parameters":[{"name":"schema","type":[{"name":"Schema","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"JSON","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENvbnZlcnQgYSBGbG93IFNjaGVtYSBpbnRvIGEgSlNPTiBTY2hlbWEgKGh0dHBzOi8vanNvbi1zY2hlbWEub3JnLCBkcmFmdCAyMDIwLTEyKSBkb2N1bWVudC4KICoKICogQHJldHVybiBhcnJheTxzdHJpbmcsIG1peGVkPgogKi8="},{"repository_path":"src\/adapter\/etl-adapter-parquet\/src\/Flow\/ETL\/Adapter\/Parquet\/functions.php","start_line_in_file":36,"slug":"from-parquet","name":"from_parquet","namespace":"Flow\\ETL\\Adapter\\Parquet","parameters":[{"name":"path","type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"columns","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"options","type":[{"name":"Options","namespace":"Flow\\Parquet","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Parquet\\Options::..."},{"name":"byte_order","type":[{"name":"ByteOrder","namespace":"Flow\\Parquet\\Binary","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Parquet\\Binary\\ByteOrder::..."},{"name":"offset","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"engine","type":[{"name":"ParquetEngine","namespace":"Flow\\Parquet","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"filesystem","type":[{"name":"Filesystem","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Filesystem\\Local\\NativeLocalFilesystem::..."}],"return_type":[{"name":"ParquetExtractor","namespace":"Flow\\ETL\\Adapter\\Parquet","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PARQUET","type":"EXTRACTOR"}},{"name":"DocumentationExample","namespace":"Flow\\Documentation\\Attribute","arguments":{"topic":"reading","example":"parquet"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBQYXRofHN0cmluZyAkcGF0aAogKiBAcGFyYW0gYXJyYXk8c3RyaW5nPiAkY29sdW1ucyAtIGxpc3Qgb2YgY29sdW1ucyB0byByZWFkIGZyb20gcGFycXVldCBmaWxlIC0gQGRlcHJlY2F0ZWQgdXNlIGB3aXRoQ29sdW1uc2AgbWV0aG9kIGluc3RlYWQKICogQHBhcmFtIE9wdGlvbnMgJG9wdGlvbnMgLSBAZGVwcmVjYXRlZCB1c2UgYHdpdGhPcHRpb25zYCBtZXRob2QgaW5zdGVhZAogKiBAcGFyYW0gQnl0ZU9yZGVyICRieXRlX29yZGVyIC0gQGRlcHJlY2F0ZWQgdXNlIGB3aXRoQnl0ZU9yZGVyYCBtZXRob2QgaW5zdGVhZAogKiBAcGFyYW0gbnVsbHxpbnQgJG9mZnNldCAtIEBkZXByZWNhdGVkIHVzZSBgd2l0aE9mZnNldGAgbWV0aG9kIGluc3RlYWQKICov"},{"repository_path":"src\/adapter\/etl-adapter-parquet\/src\/Flow\/ETL\/Adapter\/Parquet\/functions.php","start_line_in_file":69,"slug":"to-parquet","name":"to_parquet","namespace":"Flow\\ETL\\Adapter\\Parquet","parameters":[{"name":"path","type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"options","type":[{"name":"Options","namespace":"Flow\\Parquet","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"compressions","type":[{"name":"Compressions","namespace":"Flow\\Parquet\\ParquetFile","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Parquet\\ParquetFile\\Compressions::..."},{"name":"schema","type":[{"name":"Schema","namespace":"Flow\\ETL","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"engine","type":[{"name":"ParquetEngine","namespace":"Flow\\Parquet","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"filesystem","type":[{"name":"Filesystem","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Filesystem\\Local\\NativeLocalFilesystem::..."}],"return_type":[{"name":"ParquetLoader","namespace":"Flow\\ETL\\Adapter\\Parquet","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PARQUET","type":"LOADER"}},{"name":"DocumentationExample","namespace":"Flow\\Documentation\\Attribute","arguments":{"topic":"writing","example":"parquet"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBQYXRofHN0cmluZyAkcGF0aAogKiBAcGFyYW0gbnVsbHxPcHRpb25zICRvcHRpb25zIC0gQGRlcHJlY2F0ZWQgdXNlIGB3aXRoT3B0aW9uc2AgbWV0aG9kIGluc3RlYWQKICogQHBhcmFtIENvbXByZXNzaW9ucyAkY29tcHJlc3Npb25zIC0gQGRlcHJlY2F0ZWQgdXNlIGB3aXRoQ29tcHJlc3Npb25zYCBtZXRob2QgaW5zdGVhZAogKiBAcGFyYW0gbnVsbHxTY2hlbWEgJHNjaGVtYSAtIEBkZXByZWNhdGVkIHVzZSBgd2l0aFNjaGVtYWAgbWV0aG9kIGluc3RlYWQKICov"},{"repository_path":"src\/adapter\/etl-adapter-parquet\/src\/Flow\/ETL\/Adapter\/Parquet\/functions.php","start_line_in_file":100,"slug":"array-to-generator","name":"array_to_generator","namespace":"Flow\\ETL\\Adapter\\Parquet","parameters":[{"name":"data","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Generator","namespace":"","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PARQUET","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEB0ZW1wbGF0ZSBUCiAqCiAqIEBwYXJhbSBhcnJheTxUPiAkZGF0YQogKgogKiBAcmV0dXJuIFxHZW5lcmF0b3I8VD4KICov"},{"repository_path":"src\/adapter\/etl-adapter-parquet\/src\/Flow\/ETL\/Adapter\/Parquet\/functions.php","start_line_in_file":111,"slug":"empty-generator","name":"empty_generator","namespace":"Flow\\ETL\\Adapter\\Parquet","parameters":[],"return_type":[{"name":"Generator","namespace":"","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PARQUET","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBkZXByZWNhdGVkIHVzZSBGbG93XFBhcnF1ZXRcZW1wdHlfZ2VuZXJhdG9yKCkgaW5zdGVhZAogKi8="},{"repository_path":"src\/adapter\/etl-adapter-parquet\/src\/Flow\/ETL\/Adapter\/Parquet\/functions.php","start_line_in_file":117,"slug":"schema-to-parquet","name":"schema_to_parquet","namespace":"Flow\\ETL\\Adapter\\Parquet","parameters":[{"name":"schema","type":[{"name":"Schema","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Schema","namespace":"Flow\\Parquet\\ParquetFile","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PARQUET","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-parquet\/src\/Flow\/ETL\/Adapter\/Parquet\/functions.php","start_line_in_file":123,"slug":"schema-from-parquet","name":"schema_from_parquet","namespace":"Flow\\ETL\\Adapter\\Parquet","parameters":[{"name":"schema","type":[{"name":"Schema","namespace":"Flow\\Parquet\\ParquetFile","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Schema","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PARQUET","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-postgresql\/src\/Flow\/ETL\/Adapter\/PostgreSql\/functions.php","start_line_in_file":39,"slug":"from-pgsql-cursor","name":"from_pgsql_cursor","namespace":"Flow\\ETL\\Adapter\\PostgreSql","parameters":[{"name":"client","type":[{"name":"Client","namespace":"Flow\\PostgreSql\\Client","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"query","type":[{"name":"Sql","namespace":"Flow\\PostgreSql\\QueryBuilder","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"parameters","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"}],"return_type":[{"name":"PostgreSqlCursorExtractor","namespace":"Flow\\ETL\\Adapter\\PostgreSql","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"POSTGRESQL","type":"EXTRACTOR"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFBvc3RncmVTUUwgY3Vyc29yIGV4dHJhY3RvciB1c2luZyBzZXJ2ZXItc2lkZSBjdXJzb3JzIGZvciBtZW1vcnktZWZmaWNpZW50IGV4dHJhY3Rpb24uCiAqCiAqIFVzZXMgREVDTEFSRSBDVVJTT1IgKyBGRVRDSCB0byBzdHJlYW0gZGF0YSB3aXRob3V0IGxvYWRpbmcgZW50aXJlIHJlc3VsdCBzZXQgaW50byBtZW1vcnkuCiAqIFRoaXMgaXMgdGhlIG9ubHkgd2F5IHRvIGFjaGlldmUgdHJ1ZSBsb3cgbWVtb3J5IGV4dHJhY3Rpb24gd2l0aCBQSFAncyBleHQtcGdzcWwuCiAqCiAqIE5vdGU6IFJlcXVpcmVzIGEgdHJhbnNhY3Rpb24gY29udGV4dCAoYXV0by1zdGFydGVkIGlmIG5vdCBpbiBvbmUpLgogKgogKiBAcGFyYW0gQ2xpZW50ICRjbGllbnQgUG9zdGdyZVNRTCBjbGllbnQKICogQHBhcmFtIFNxbHxzdHJpbmcgJHF1ZXJ5IFNRTCBxdWVyeSB0byBleGVjdXRlICh3cmFwcGVkIGluIERFQ0xBUkUgQ1VSU09SKQogKiBAcGFyYW0gbGlzdDxtaXhlZD4gJHBhcmFtZXRlcnMgVmFsdWVzIGJvdW5kIGJ5IHBvc2l0aW9uIHRvICQxLCAkMiwgLi4uIHBsYWNlaG9sZGVyczsgd3JhcCB3aXRoIHtAc2VlIFxGbG93XFBvc3RncmVTcWxcRFNMXHR5cGVkKCl9IHRvIGZvcmNlIGEgc3BlY2lmaWMgUG9zdGdyZVNRTCB0eXBlCiAqLw=="},{"repository_path":"src\/adapter\/etl-adapter-postgresql\/src\/Flow\/ETL\/Adapter\/PostgreSql\/functions.php","start_line_in_file":55,"slug":"from-pgsql-limit-offset","name":"from_pgsql_limit_offset","namespace":"Flow\\ETL\\Adapter\\PostgreSql","parameters":[{"name":"client","type":[{"name":"Client","namespace":"Flow\\PostgreSql\\Client","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"query","type":[{"name":"Sql","namespace":"Flow\\PostgreSql\\QueryBuilder","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"parameters","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"}],"return_type":[{"name":"PostgreSqlLimitOffsetExtractor","namespace":"Flow\\ETL\\Adapter\\PostgreSql","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"POSTGRESQL","type":"EXTRACTOR"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFBvc3RncmVTUUwgZXh0cmFjdG9yIHVzaW5nIExJTUlUL09GRlNFVCBwYWdpbmF0aW9uLgogKgogKiBTdWl0YWJsZSBmb3Igc21hbGxlciBkYXRhc2V0cy4gRm9yIGxhcmdlIGRhdGFzZXRzLCBjb25zaWRlciB1c2luZyBrZXlzZXQgcGFnaW5hdGlvbgogKiAoZnJvbV9wZ3NxbF9rZXlfc2V0KSB3aGljaCBpcyBtb3JlIGVmZmljaWVudC4KICoKICogQHBhcmFtIENsaWVudCAkY2xpZW50IFBvc3RncmVTUUwgY2xpZW50CiAqIEBwYXJhbSBTcWx8c3RyaW5nICRxdWVyeSBTUUwgcXVlcnkgdG8gZXhlY3V0ZSAobXVzdCBoYXZlIE9SREVSIEJZIGNsYXVzZSkKICogQHBhcmFtIGxpc3Q8bWl4ZWQ+ICRwYXJhbWV0ZXJzIFZhbHVlcyBib3VuZCBieSBwb3NpdGlvbiB0byAkMSwgJDIsIC4uLiBwbGFjZWhvbGRlcnM7IHdyYXAgd2l0aCB7QHNlZSBcRmxvd1xQb3N0Z3JlU3FsXERTTFx0eXBlZCgpfSB0byBmb3JjZSBhIHNwZWNpZmljIFBvc3RncmVTUUwgdHlwZQogKi8="},{"repository_path":"src\/adapter\/etl-adapter-postgresql\/src\/Flow\/ETL\/Adapter\/PostgreSql\/functions.php","start_line_in_file":75,"slug":"from-pgsql-key-set","name":"from_pgsql_key_set","namespace":"Flow\\ETL\\Adapter\\PostgreSql","parameters":[{"name":"client","type":[{"name":"Client","namespace":"Flow\\PostgreSql\\Client","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"query","type":[{"name":"Sql","namespace":"Flow\\PostgreSql\\QueryBuilder","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"keySet","type":[{"name":"KeySet","namespace":"Flow\\ETL\\Adapter\\PostgreSql\\Pagination","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"parameters","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"}],"return_type":[{"name":"PostgreSqlKeySetExtractor","namespace":"Flow\\ETL\\Adapter\\PostgreSql","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"POSTGRESQL","type":"EXTRACTOR"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFBvc3RncmVTUUwgZXh0cmFjdG9yIHVzaW5nIGtleXNldCAoY3Vyc29yLWJhc2VkKSBwYWdpbmF0aW9uLgogKgogKiBNb3JlIGVmZmljaWVudCB0aGFuIExJTUlUL09GRlNFVCBmb3IgbGFyZ2UgZGF0YXNldHMgLSB1c2VzIGluZGV4ZWQgV0hFUkUgY29uZGl0aW9ucwogKiBpbnN0ZWFkIG9mIHNraXBwaW5nIHJvd3MuCiAqCiAqIEBwYXJhbSBDbGllbnQgJGNsaWVudCBQb3N0Z3JlU1FMIGNsaWVudAogKiBAcGFyYW0gU3FsfHN0cmluZyAkcXVlcnkgU1FMIHF1ZXJ5IHRvIGV4ZWN1dGUgKE9SREVSIEJZIG9wdGlvbmFsOyB3aGVuIHByZXNlbnQgaXQgbXVzdCBlcXVhbCB0aGUga2V5czsgbm8gTElNSVQvT0ZGU0VUOyBrZXlzIGluZGV4ZWQsIG5vbi1udWxsLCB1bmlxdWUpCiAqIEBwYXJhbSBLZXlTZXQgJGtleVNldCBDb2x1bW5zIHRvIHVzZSBmb3Iga2V5c2V0IHBhZ2luYXRpb24KICogQHBhcmFtIGxpc3Q8bWl4ZWQ+ICRwYXJhbWV0ZXJzIFZhbHVlcyBib3VuZCBieSBwb3NpdGlvbiB0byAkMSwgJDIsIC4uLiBwbGFjZWhvbGRlcnM7IHdyYXAgd2l0aCB7QHNlZSBcRmxvd1xQb3N0Z3JlU3FsXERTTFx0eXBlZCgpfSB0byBmb3JjZSBhIHNwZWNpZmljIFBvc3RncmVTUUwgdHlwZQogKi8="},{"repository_path":"src\/adapter\/etl-adapter-postgresql\/src\/Flow\/ETL\/Adapter\/PostgreSql\/functions.php","start_line_in_file":85,"slug":"pgsql-pagination-key-asc","name":"pgsql_pagination_key_asc","namespace":"Flow\\ETL\\Adapter\\PostgreSql","parameters":[{"name":"column","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Key","namespace":"Flow\\ETL\\Adapter\\PostgreSql\\Pagination","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"POSTGRESQL","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-postgresql\/src\/Flow\/ETL\/Adapter\/PostgreSql\/functions.php","start_line_in_file":91,"slug":"pgsql-pagination-key-desc","name":"pgsql_pagination_key_desc","namespace":"Flow\\ETL\\Adapter\\PostgreSql","parameters":[{"name":"column","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Key","namespace":"Flow\\ETL\\Adapter\\PostgreSql\\Pagination","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"POSTGRESQL","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-postgresql\/src\/Flow\/ETL\/Adapter\/PostgreSql\/functions.php","start_line_in_file":97,"slug":"pgsql-pagination-key-set","name":"pgsql_pagination_key_set","namespace":"Flow\\ETL\\Adapter\\PostgreSql","parameters":[{"name":"keys","type":[{"name":"Key","namespace":"Flow\\ETL\\Adapter\\PostgreSql\\Pagination","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"KeySet","namespace":"Flow\\ETL\\Adapter\\PostgreSql\\Pagination","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"POSTGRESQL","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-postgresql\/src\/Flow\/ETL\/Adapter\/PostgreSql\/functions.php","start_line_in_file":103,"slug":"to-pgsql-table","name":"to_pgsql_table","namespace":"Flow\\ETL\\Adapter\\PostgreSql","parameters":[{"name":"client","type":[{"name":"Client","namespace":"Flow\\PostgreSql\\Client","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"table","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"PostgreSqlLoader","namespace":"Flow\\ETL\\Adapter\\PostgreSql","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"POSTGRESQL","type":"LOADER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-postgresql\/src\/Flow\/ETL\/Adapter\/PostgreSql\/functions.php","start_line_in_file":112,"slug":"to-pgsql-transaction","name":"to_pgsql_transaction","namespace":"Flow\\ETL\\Adapter\\PostgreSql","parameters":[{"name":"client","type":[{"name":"Client","namespace":"Flow\\PostgreSql\\Client","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"sinks","type":[{"name":"Loader","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false},{"name":"Sink","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"Transactional","namespace":"Flow\\ETL\\Sink","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"POSTGRESQL","type":"LOADER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIFdyaXRlIGV2ZXJ5IHNpbmsgd2l0aGluIFBvc3RncmVTUUwgdHJhbnNhY3Rpb25zLgogKi8="},{"repository_path":"src\/adapter\/etl-adapter-postgresql\/src\/Flow\/ETL\/Adapter\/PostgreSql\/functions.php","start_line_in_file":126,"slug":"pgsql-insert-options","name":"pgsql_insert_options","namespace":"Flow\\ETL\\Adapter\\PostgreSql","parameters":[{"name":"skipConflicts","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"conflictColumns","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"conflictConstraint","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"updateColumns","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"}],"return_type":[{"name":"InsertOptions","namespace":"Flow\\ETL\\Adapter\\PostgreSql\\LoaderOptions","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"POSTGRESQL","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBpbnNlcnQgb3B0aW9ucyBmb3IgUG9zdGdyZVNRTCBsb2FkZXIuCiAqCiAqIEBwYXJhbSBib29sICRza2lwQ29uZmxpY3RzIElmIHRydWUsIHVzZSBPTiBDT05GTElDVCBETyBOT1RISU5HCiAqIEBwYXJhbSBsaXN0PHN0cmluZz4gJGNvbmZsaWN0Q29sdW1ucyBDb2x1bW4gbmFtZXMgZm9yIE9OIENPTkZMSUNUIChjb2x1bW5zKQogKiBAcGFyYW0gbnVsbHxzdHJpbmcgJGNvbmZsaWN0Q29uc3RyYWludCBDb25zdHJhaW50IG5hbWUgZm9yIE9OIENPTkZMSUNUIE9OIENPTlNUUkFJTlQKICogQHBhcmFtIGxpc3Q8c3RyaW5nPiAkdXBkYXRlQ29sdW1ucyBDb2x1bW5zIHRvIHVwZGF0ZSBvbiBjb25mbGljdCAoZW1wdHkgPSBhbGwgbm9uLWtleSBjb2x1bW5zKQogKi8="},{"repository_path":"src\/adapter\/etl-adapter-postgresql\/src\/Flow\/ETL\/Adapter\/PostgreSql\/functions.php","start_line_in_file":141,"slug":"pgsql-update-options","name":"pgsql_update_options","namespace":"Flow\\ETL\\Adapter\\PostgreSql","parameters":[{"name":"primaryKeys","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"UpdateOptions","namespace":"Flow\\ETL\\Adapter\\PostgreSql\\LoaderOptions","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"POSTGRESQL","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSB1cGRhdGUgb3B0aW9ucyBmb3IgUG9zdGdyZVNRTCBsb2FkZXIuCiAqCiAqIEBwYXJhbSBsaXN0PHN0cmluZz4gJHByaW1hcnlLZXlzIENvbHVtbnMgdG8gdXNlIGluIFdIRVJFIGNsYXVzZSBmb3IgbWF0Y2hpbmcgcm93cwogKi8="},{"repository_path":"src\/adapter\/etl-adapter-postgresql\/src\/Flow\/ETL\/Adapter\/PostgreSql\/functions.php","start_line_in_file":152,"slug":"pgsql-delete-options","name":"pgsql_delete_options","namespace":"Flow\\ETL\\Adapter\\PostgreSql","parameters":[{"name":"primaryKeys","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"DeleteOptions","namespace":"Flow\\ETL\\Adapter\\PostgreSql\\LoaderOptions","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"POSTGRESQL","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBkZWxldGUgb3B0aW9ucyBmb3IgUG9zdGdyZVNRTCBsb2FkZXIuCiAqCiAqIEBwYXJhbSBsaXN0PHN0cmluZz4gJHByaW1hcnlLZXlzIENvbHVtbnMgdG8gdXNlIGluIFdIRVJFIGNsYXVzZSBmb3IgbWF0Y2hpbmcgcm93cwogKi8="},{"repository_path":"src\/adapter\/etl-adapter-postgresql\/src\/Flow\/ETL\/Adapter\/PostgreSql\/functions.php","start_line_in_file":164,"slug":"to-pgsql-schema-table","name":"to_pgsql_schema_table","namespace":"Flow\\ETL\\Adapter\\PostgreSql","parameters":[{"name":"schema","type":[{"name":"Schema","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"tableName","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"databaseSchema","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'public'"},{"name":"typesMap","type":[{"name":"EntryTypesMap","namespace":"Flow\\ETL\\Adapter\\PostgreSql","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"options","type":[{"name":"TableOptions","namespace":"Flow\\PostgreSql\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Table","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"POSTGRESQL","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENvbnZlcnQgYSBGbG93IFNjaGVtYSBpbnRvIGEgUG9zdGdyZVNRTCB0YWJsZSBkZWZpbml0aW9uLgogKgogKiBAcGFyYW0gc3RyaW5nICRkYXRhYmFzZVNjaGVtYSBQb3N0Z3JlU1FMIHNjaGVtYSAobmFtZXNwYWNlKSB0aGUgdGFibGUgYmVsb25ncyB0bwogKiBAcGFyYW0gP1RhYmxlT3B0aW9ucyAkb3B0aW9ucyB0YWJsZS1sZXZlbCBvcHRpb25zIHRoZSBGbG93IFNjaGVtYSBjYW5ub3QgZXhwcmVzcyAoZS5nLiBVTkxPR0dFRCkKICov"},{"repository_path":"src\/adapter\/etl-adapter-postgresql\/src\/Flow\/ETL\/Adapter\/PostgreSql\/functions.php","start_line_in_file":178,"slug":"pgsql-table-to-flow-schema","name":"pgsql_table_to_flow_schema","namespace":"Flow\\ETL\\Adapter\\PostgreSql","parameters":[{"name":"table","type":[{"name":"Table","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"typesMap","type":[{"name":"EntryTypesMap","namespace":"Flow\\ETL\\Adapter\\PostgreSql","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Schema","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"POSTGRESQL","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENvbnZlcnQgYSBQb3N0Z3JlU1FMIHRhYmxlIGRlZmluaXRpb24gaW50byBhIEZsb3cgU2NoZW1hLgogKi8="},{"repository_path":"src\/adapter\/etl-adapter-postgresql\/src\/Flow\/ETL\/Adapter\/PostgreSql\/functions.php","start_line_in_file":184,"slug":"pgsql-schema-sort-by-type","name":"pgsql_schema_sort_by_type","namespace":"Flow\\ETL\\Adapter\\PostgreSql","parameters":[{"name":"typesMap","type":[{"name":"EntryTypesMap","namespace":"Flow\\ETL\\Adapter\\PostgreSql","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"TypeStrategy","namespace":"Flow\\ETL\\Adapter\\PostgreSql\\Schema\\SortingStrategy","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"POSTGRESQL","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-seal\/src\/Flow\/ETL\/Adapter\/Seal\/functions.php","start_line_in_file":15,"slug":"to-seal-upsert","name":"to_seal_upsert","namespace":"Flow\\ETL\\Adapter\\Seal","parameters":[{"name":"engine","type":[{"name":"EngineInterface","namespace":"CmsIg\\Seal","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"index","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"SealLoader","namespace":"Flow\\ETL\\Adapter\\Seal","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"SEAL","type":"LOADER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-seal\/src\/Flow\/ETL\/Adapter\/Seal\/functions.php","start_line_in_file":21,"slug":"to-seal-delete","name":"to_seal_delete","namespace":"Flow\\ETL\\Adapter\\Seal","parameters":[{"name":"engine","type":[{"name":"EngineInterface","namespace":"CmsIg\\Seal","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"index","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"SealLoader","namespace":"Flow\\ETL\\Adapter\\Seal","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"SEAL","type":"LOADER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-seal\/src\/Flow\/ETL\/Adapter\/Seal\/functions.php","start_line_in_file":27,"slug":"to-seal-schema","name":"to_seal_schema","namespace":"Flow\\ETL\\Adapter\\Seal","parameters":[{"name":"schema","type":[{"name":"Schema","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"index_name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"identifier","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Schema","namespace":"CmsIg\\Seal\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"SEAL","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-seal\/src\/Flow\/ETL\/Adapter\/Seal\/functions.php","start_line_in_file":33,"slug":"seal-schema-to-flow","name":"seal_schema_to_flow","namespace":"Flow\\ETL\\Adapter\\Seal","parameters":[{"name":"schema","type":[{"name":"Schema","namespace":"CmsIg\\Seal\\Schema","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Schema","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"SEAL","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-text\/src\/Flow\/ETL\/Adapter\/Text\/functions.php","start_line_in_file":21,"slug":"from-text","name":"from_text","namespace":"Flow\\ETL\\Adapter\\Text","parameters":[{"name":"path","type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"filesystem","type":[{"name":"Filesystem","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Filesystem\\Local\\NativeLocalFilesystem::..."}],"return_type":[{"name":"TextExtractor","namespace":"Flow\\ETL\\Adapter\\Text","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TEXT","type":"EXTRACTOR"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBQYXRofHN0cmluZyAkcGF0aAogKi8="},{"repository_path":"src\/adapter\/etl-adapter-text\/src\/Flow\/ETL\/Adapter\/Text\/functions.php","start_line_in_file":31,"slug":"to-text","name":"to_text","namespace":"Flow\\ETL\\Adapter\\Text","parameters":[{"name":"path","type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"new_line_separator","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'\\n'"},{"name":"filesystem","type":[{"name":"Filesystem","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Filesystem\\Local\\NativeLocalFilesystem::..."}],"return_type":[{"name":"TextLoader","namespace":"Flow\\ETL\\Adapter\\Text","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TEXT","type":"LOADER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBQYXRofHN0cmluZyAkcGF0aAogKiBAcGFyYW0gc3RyaW5nICRuZXdfbGluZV9zZXBhcmF0b3IgLSBkZWZhdWx0IFBIUF9FT0wgLSBAZGVwcmVjYXRlZCB1c2Ugd2l0aE5ld0xpbmVTZXBhcmF0b3IgbWV0aG9kIGluc3RlYWQKICov"},{"repository_path":"src\/adapter\/etl-adapter-xml\/src\/Flow\/ETL\/Adapter\/XML\/functions.php","start_line_in_file":38,"slug":"from-xml","name":"from_xml","namespace":"Flow\\ETL\\Adapter\\XML","parameters":[{"name":"path","type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"xml_node_path","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"''"},{"name":"filesystem","type":[{"name":"Filesystem","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Filesystem\\Local\\NativeLocalFilesystem::..."}],"return_type":[{"name":"XMLParserExtractor","namespace":"Flow\\ETL\\Adapter\\XML","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"XML","type":"EXTRACTOR"}},{"name":"DocumentationExample","namespace":"Flow\\Documentation\\Attribute","arguments":{"topic":"reading","example":"xml"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqICBJbiBvcmRlciB0byBpdGVyYXRlIG9ubHkgb3ZlciA8ZWxlbWVudD4gbm9kZXMgdXNlIGBmcm9tX3htbCgkZmlsZSktPndpdGhYTUxOb2RlUGF0aCgncm9vdC9lbGVtZW50cy9lbGVtZW50JylgLgogKgogKiAgPHJvb3Q+CiAqICAgIDxlbGVtZW50cz4KICogICAgICA8ZWxlbWVudD48L2VsZW1lbnQ+CiAqICAgICAgPGVsZW1lbnQ+PC9lbGVtZW50PgogKiAgICA8ZWxlbWVudHM+CiAqICA8L3Jvb3Q+CiAqCiAqICBYTUwgTm9kZSBQYXRoIGRvZXMgbm90IHN1cHBvcnQgYXR0cmlidXRlcyBhbmQgaXQncyBub3QgeHBhdGgsIGl0IGlzIGp1c3QgYSBzZXF1ZW5jZQogKiAgb2Ygbm9kZSBuYW1lcyBzZXBhcmF0ZWQgd2l0aCBzbGFzaC4KICoKICogQHBhcmFtIFBhdGh8c3RyaW5nICRwYXRoCiAqIEBwYXJhbSBzdHJpbmcgJHhtbF9ub2RlX3BhdGggLSBAZGVwcmVjYXRlZCB1c2UgYGZyb21feG1sKCRmaWxlKS0+d2l0aFhNTE5vZGVQYXRoKCR4bWxOb2RlUGF0aClgIG1ldGhvZCBpbnN0ZWFkCiAqLw=="},{"repository_path":"src\/adapter\/etl-adapter-xml\/src\/Flow\/ETL\/Adapter\/XML\/functions.php","start_line_in_file":57,"slug":"to-xml","name":"to_xml","namespace":"Flow\\ETL\\Adapter\\XML","parameters":[{"name":"path","type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"root_element_name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'rows'"},{"name":"row_element_name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'row'"},{"name":"attribute_prefix","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'_'"},{"name":"date_time_format","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'Y-m-d\\\\TH:i:s.uP'"},{"name":"xml_writer","type":[{"name":"XMLWriter","namespace":"Flow\\ETL\\Adapter\\XML","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Adapter\\XML\\XMLWriter\\StringXMLWriter::..."},{"name":"filesystem","type":[{"name":"Filesystem","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Filesystem\\Local\\NativeLocalFilesystem::..."}],"return_type":[{"name":"XMLLoader","namespace":"Flow\\ETL\\Adapter\\XML\\Loader","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"XML","type":"LOADER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBQYXRofHN0cmluZyAkcGF0aAogKiBAcGFyYW0gc3RyaW5nICRyb290X2VsZW1lbnRfbmFtZSAtIEBkZXByZWNhdGVkIHVzZSBgd2l0aFJvb3RFbGVtZW50TmFtZSgpYCBtZXRob2QgaW5zdGVhZAogKiBAcGFyYW0gc3RyaW5nICRyb3dfZWxlbWVudF9uYW1lIC0gQGRlcHJlY2F0ZWQgdXNlIGB3aXRoUm93RWxlbWVudE5hbWUoKWAgbWV0aG9kIGluc3RlYWQKICogQHBhcmFtIHN0cmluZyAkYXR0cmlidXRlX3ByZWZpeCAtIEBkZXByZWNhdGVkIHVzZSBgd2l0aEF0dHJpYnV0ZVByZWZpeCgpYCBtZXRob2QgaW5zdGVhZAogKiBAcGFyYW0gc3RyaW5nICRkYXRlX3RpbWVfZm9ybWF0IC0gQGRlcHJlY2F0ZWQgdXNlIGB3aXRoRGF0ZVRpbWVGb3JtYXQoKWAgbWV0aG9kIGluc3RlYWQKICogQHBhcmFtIFhNTFdyaXRlciAkeG1sX3dyaXRlcgogKi8="},{"repository_path":"src\/lib\/filesystem\/src\/Flow\/Filesystem\/DSL\/functions.php","start_line_in_file":32,"slug":"mount","name":"mount","namespace":"Flow\\Filesystem\\DSL","parameters":[{"name":"protocol","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Mount","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"FILESYSTEM","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/filesystem\/src\/Flow\/Filesystem\/DSL\/functions.php","start_line_in_file":38,"slug":"partition","name":"partition","namespace":"Flow\\Filesystem\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"value","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Partition","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"FILESYSTEM","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/filesystem\/src\/Flow\/Filesystem\/DSL\/functions.php","start_line_in_file":44,"slug":"partitions","name":"partitions","namespace":"Flow\\Filesystem\\DSL","parameters":[{"name":"partition","type":[{"name":"Partition","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"Partitions","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"FILESYSTEM","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/filesystem\/src\/Flow\/Filesystem\/DSL\/functions.php","start_line_in_file":63,"slug":"path","name":"path","namespace":"Flow\\Filesystem\\DSL","parameters":[{"name":"path","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"options","type":[{"name":"Options","namespace":"Flow\\Filesystem\\Path","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"}],"return_type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"FILESYSTEM","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIFBhdGggc3VwcG9ydHMgZ2xvYiBwYXR0ZXJucy4KICogRXhhbXBsZXM6CiAqICAtIHBhdGgoJyouY3N2JykgLSBhbnkgY3N2IGZpbGUgaW4gY3VycmVudCBkaXJlY3RvcnkKICogIC0gcGF0aCgnLyoqIC8gKi5jc3YnKSAtIGFueSBjc3YgZmlsZSBpbiBhbnkgc3ViZGlyZWN0b3J5IChyZW1vdmUgZW1wdHkgc3BhY2VzKQogKiAgLSBwYXRoKCcvZGlyL3BhcnRpdGlvbj0qIC8qLnBhcnF1ZXQnKSAtIGFueSBwYXJxdWV0IGZpbGUgaW4gZ2l2ZW4gcGFydGl0aW9uIGRpcmVjdG9yeS4KICoKICogR2xvYiBwYXR0ZXJuIGlzIGFsc28gc3VwcG9ydGVkIGJ5IHJlbW90ZSBmaWxlc3lzdGVtcyBsaWtlIEF6dXJlCiAqCiAqICAtIHBhdGgoJ2F6dXJlLWJsb2I6Ly9kaXJlY3RvcnkvKi5jc3YnKSAtIGFueSBjc3YgZmlsZSBpbiBnaXZlbiBkaXJlY3RvcnkKICoKICogQHBhcmFtIGFycmF5PHN0cmluZywgbnVsbHxib29sfGZsb2F0fGludHxzdHJpbmd8XFVuaXRFbnVtPnxQYXRoXE9wdGlvbnMgJG9wdGlvbnMKICov"},{"repository_path":"src\/lib\/filesystem\/src\/Flow\/Filesystem\/DSL\/functions.php","start_line_in_file":74,"slug":"path-real","name":"path_real","namespace":"Flow\\Filesystem\\DSL","parameters":[{"name":"path","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"options","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"}],"return_type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"FILESYSTEM","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIFJlc29sdmUgcmVhbCBwYXRoIGZyb20gZ2l2ZW4gcGF0aC4KICoKICogQHBhcmFtIGFycmF5PHN0cmluZywgbnVsbHxib29sfGZsb2F0fGludHxzdHJpbmd8XFVuaXRFbnVtPiAkb3B0aW9ucwogKi8="},{"repository_path":"src\/lib\/filesystem\/src\/Flow\/Filesystem\/DSL\/functions.php","start_line_in_file":80,"slug":"native-local-filesystem","name":"native_local_filesystem","namespace":"Flow\\Filesystem\\DSL","parameters":[{"name":"protocol","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'file'"}],"return_type":[{"name":"NativeLocalFilesystem","namespace":"Flow\\Filesystem\\Local","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"FILESYSTEM","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/filesystem\/src\/Flow\/Filesystem\/DSL\/functions.php","start_line_in_file":90,"slug":"stdout-filesystem","name":"stdout_filesystem","namespace":"Flow\\Filesystem\\DSL","parameters":[{"name":"protocol","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'stdout'"}],"return_type":[{"name":"StdOutFilesystem","namespace":"Flow\\Filesystem\\Local","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"FILESYSTEM","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIFdyaXRlLW9ubHkgZmlsZXN5c3RlbSB1c2VmdWwgd2hlbiB3ZSBqdXN0IHdhbnQgdG8gd3JpdGUgdGhlIG91dHB1dCB0byBzdGRvdXQuCiAqIFRoZSBtYWluIHVzZSBjYXNlIGlzIGZvciBzdHJlYW1pbmcgZGF0YXNldHMgb3ZlciBodHRwLgogKi8="},{"repository_path":"src\/lib\/filesystem\/src\/Flow\/Filesystem\/DSL\/functions.php","start_line_in_file":99,"slug":"memory-filesystem","name":"memory_filesystem","namespace":"Flow\\Filesystem\\DSL","parameters":[{"name":"protocol","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'memory'"}],"return_type":[{"name":"MemoryFilesystem","namespace":"Flow\\Filesystem\\Local","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"FILESYSTEM","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIG5ldyBtZW1vcnkgZmlsZXN5c3RlbSBhbmQgd3JpdGVzIGRhdGEgdG8gaXQgaW4gbWVtb3J5LgogKi8="},{"repository_path":"src\/lib\/filesystem\/src\/Flow\/Filesystem\/DSL\/functions.php","start_line_in_file":110,"slug":"fstab","name":"fstab","namespace":"Flow\\Filesystem\\DSL","parameters":[{"name":"filesystems","type":[{"name":"Filesystem","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"FilesystemTable","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"FILESYSTEM","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIG5ldyBmaWxlc3lzdGVtIHRhYmxlIHdpdGggZ2l2ZW4gZmlsZXN5c3RlbXMuCiAqIEZpbGVzeXN0ZW1zIGNhbiBiZSBhbHNvIG1vdW50ZWQgbGF0ZXIuCiAqIElmIG5vIGZpbGVzeXN0ZW1zIGFyZSBwcm92aWRlZCwgbG9jYWwgZmlsZXN5c3RlbSBpcyBtb3VudGVkLgogKi8="},{"repository_path":"src\/lib\/filesystem\/src\/Flow\/Filesystem\/DSL\/functions.php","start_line_in_file":126,"slug":"traceable-filesystem","name":"traceable_filesystem","namespace":"Flow\\Filesystem\\DSL","parameters":[{"name":"filesystem","type":[{"name":"Filesystem","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"telemetryConfig","type":[{"name":"FilesystemTelemetryConfig","namespace":"Flow\\Filesystem\\Telemetry","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"TraceableFilesystem","namespace":"Flow\\Filesystem\\Telemetry","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"FILESYSTEM","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIFdyYXAgYSBmaWxlc3lzdGVtIHdpdGggdGVsZW1ldHJ5IHRyYWNpbmcgc3VwcG9ydC4KICogQWxsIGZpbGVzeXN0ZW0gYW5kIHN0cmVhbSBvcGVyYXRpb25zIHdpbGwgYmUgdHJhY2VkIGFjY29yZGluZyB0byB0aGUgY29uZmlndXJhdGlvbi4KICov"},{"repository_path":"src\/lib\/filesystem\/src\/Flow\/Filesystem\/DSL\/functions.php","start_line_in_file":135,"slug":"filesystem-telemetry-config","name":"filesystem_telemetry_config","namespace":"Flow\\Filesystem\\DSL","parameters":[{"name":"telemetry","type":[{"name":"Telemetry","namespace":"Flow\\Telemetry","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"clock","type":[{"name":"ClockInterface","namespace":"Psr\\Clock","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"options","type":[{"name":"FilesystemTelemetryOptions","namespace":"Flow\\Filesystem\\Telemetry","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"FilesystemTelemetryConfig","namespace":"Flow\\Filesystem\\Telemetry","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"FILESYSTEM","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIHRlbGVtZXRyeSBjb25maWd1cmF0aW9uIGZvciB0aGUgZmlsZXN5c3RlbS4KICov"},{"repository_path":"src\/lib\/filesystem\/src\/Flow\/Filesystem\/DSL\/functions.php","start_line_in_file":150,"slug":"filesystem-telemetry-options","name":"filesystem_telemetry_options","namespace":"Flow\\Filesystem\\DSL","parameters":[{"name":"trace_streams","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"collect_metrics","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"}],"return_type":[{"name":"FilesystemTelemetryOptions","namespace":"Flow\\Filesystem\\Telemetry","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"FILESYSTEM","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBvcHRpb25zIGZvciBmaWxlc3lzdGVtIHRlbGVtZXRyeS4KICoKICogQHBhcmFtIGJvb2wgJHRyYWNlX3N0cmVhbXMgQ3JlYXRlIGEgc2luZ2xlIHNwYW4gcGVyIHN0cmVhbSBsaWZlY3ljbGUgKGRlZmF1bHQ6IE9OKQogKiBAcGFyYW0gYm9vbCAkY29sbGVjdF9tZXRyaWNzIENvbGxlY3QgbWV0cmljcyBmb3IgYnl0ZXMvb3BlcmF0aW9uIGNvdW50cyAoZGVmYXVsdDogT04pCiAqLw=="},{"repository_path":"src\/lib\/filesystem\/src\/Flow\/Filesystem\/DSL\/functions.php","start_line_in_file":163,"slug":"file-copy","name":"file_copy","namespace":"Flow\\Filesystem\\DSL","parameters":[{"name":"table","type":[{"name":"FilesystemTable","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"options","type":[{"name":"OperationOptions","namespace":"Flow\\Filesystem\\Operations","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Copy","namespace":"Flow\\Filesystem\\Operations","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"FILESYSTEM","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENvcHkgYSBmaWxlIGZyb20gb25lIHBhdGggdG8gYW5vdGhlciwgYWNyb3NzIGFueSBmaWxlc3lzdGVtcyBtb3VudGVkIGluIHRoZSB0YWJsZS4KICogQWx3YXlzIHN0cmVhbXMgYnl0ZXM7IHNhbWUtZmlsZXN5c3RlbSBjb3BpZXMgZG8gbm90IHVzZSBzZXJ2ZXItc2lkZSBvcHRpbWl6YXRpb25zCiAqIGJlY2F1c2UgYEZpbGVzeXN0ZW06Om12YCBpcyBhIG1vdmUsIG5vdCBhIGNvcHkuCiAqLw=="},{"repository_path":"src\/lib\/filesystem\/src\/Flow\/Filesystem\/DSL\/functions.php","start_line_in_file":174,"slug":"file-move","name":"file_move","namespace":"Flow\\Filesystem\\DSL","parameters":[{"name":"table","type":[{"name":"FilesystemTable","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"options","type":[{"name":"OperationOptions","namespace":"Flow\\Filesystem\\Operations","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Move","namespace":"Flow\\Filesystem\\Operations","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"FILESYSTEM","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIE1vdmUgYSBmaWxlIGZyb20gb25lIHBhdGggdG8gYW5vdGhlciwgYWNyb3NzIGFueSBmaWxlc3lzdGVtcyBtb3VudGVkIGluIHRoZSB0YWJsZS4KICogSW50cmEtZmlsZXN5c3RlbSBtb3ZlcyBkZWxlZ2F0ZSB0byBgRmlsZXN5c3RlbTo6bXZgIGZvciBzZXJ2ZXItc2lkZSBvcHRpbWl6YXRpb25zOwogKiBjcm9zcy1maWxlc3lzdGVtIG1vdmVzIHN0cmVhbS1jb3B5IHRoZW4gcmVtb3ZlIHRoZSBzb3VyY2UgKG5vbi1hdG9taWMpLgogKi8="},{"repository_path":"src\/lib\/filesystem\/src\/Flow\/Filesystem\/DSL\/functions.php","start_line_in_file":185,"slug":"operation-options","name":"operation_options","namespace":"Flow\\Filesystem\\DSL","parameters":[{"name":"chunkSize","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"8192"}],"return_type":[{"name":"OperationOptions","namespace":"Flow\\Filesystem\\Operations","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"FILESYSTEM","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIE9wdGlvbnMgc2hhcmVkIGJ5IGZpbGVzeXN0ZW0gb3BlcmF0aW9ucy4KICoKICogQHBhcmFtIGludCAkY2h1bmtTaXplIE51bWJlciBvZiBieXRlcyByZWFkL3dyaXR0ZW4gcGVyIGl0ZXJhdGlvbiB3aGVuIHN0cmVhbWluZyBhY3Jvc3MgZmlsZXN5c3RlbXMgKGRlZmF1bHQ6IDgxOTIpCiAqLw=="},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":65,"slug":"type-structure","name":"type_structure","namespace":"Flow\\Types\\DSL","parameters":[{"name":"elements","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"}],"return_type":[{"name":"StructureType","namespace":"Flow\\Types\\Type\\Logical","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEB0ZW1wbGF0ZSBUCiAqCiAqIEBwYXJhbSBhcnJheTxhcnJheS1rZXksIFN0cnVjdHVyZUVsZW1lbnQ8VD58VHlwZTxUPj4gJGVsZW1lbnRzCiAqCiAqIEByZXR1cm4gU3RydWN0dXJlVHlwZTxhcnJheTxhcnJheS1rZXksIFQ+PgogKi8="},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":80,"slug":"structure-element","name":"structure_element","namespace":"Flow\\Types\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"type","type":[{"name":"Type","namespace":"Flow\\Types","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"optional","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"StructureElement","namespace":"Flow\\Types\\Type\\Logical","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEB0ZW1wbGF0ZSBUCiAqIEB0ZW1wbGF0ZSBUT3B0aW9uYWwgb2YgYm9vbAogKgogKiBAcGFyYW0gVHlwZTxUPiAkdHlwZQogKiBAcGFyYW0gVE9wdGlvbmFsICRvcHRpb25hbAogKgogKiBAcmV0dXJuIFN0cnVjdHVyZUVsZW1lbnQ8VCwgVE9wdGlvbmFsPgogKi8="},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":95,"slug":"type-union","name":"type_union","namespace":"Flow\\Types\\DSL","parameters":[{"name":"first","type":[{"name":"Type","namespace":"Flow\\Types","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"second","type":[{"name":"Type","namespace":"Flow\\Types","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"types","type":[{"name":"Type","namespace":"Flow\\Types","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"UnionType","namespace":"Flow\\Types\\Type\\Native","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEB0ZW1wbGF0ZSBUCiAqCiAqIEBwYXJhbSBUeXBlPFQ+ICRmaXJzdAogKiBAcGFyYW0gVHlwZTxUPiAkc2Vjb25kCiAqIEBwYXJhbSBUeXBlPFQ+IC4uLiR0eXBlcwogKgogKiBAcmV0dXJuIFVuaW9uVHlwZTxULCBUPgogKi8="},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":116,"slug":"type-intersection","name":"type_intersection","namespace":"Flow\\Types\\DSL","parameters":[{"name":"first","type":[{"name":"Type","namespace":"Flow\\Types","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"second","type":[{"name":"Type","namespace":"Flow\\Types","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"types","type":[{"name":"Type","namespace":"Flow\\Types","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"IntersectionType","namespace":"Flow\\Types\\Type\\Native","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEB0ZW1wbGF0ZSBUCiAqCiAqIEBwYXJhbSBUeXBlPFQ+ICRmaXJzdAogKiBAcGFyYW0gVHlwZTxUPiAkc2Vjb25kCiAqIEBwYXJhbSBUeXBlPFQ+IC4uLiR0eXBlcwogKgogKiBAcmV0dXJuIEludGVyc2VjdGlvblR5cGU8VCwgVD4KICov"},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":128,"slug":"type-numeric-string","name":"type_numeric_string","namespace":"Flow\\Types\\DSL","parameters":[],"return_type":[{"name":"NumericStringType","namespace":"Flow\\Types\\Type\\Logical","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":141,"slug":"type-optional","name":"type_optional","namespace":"Flow\\Types\\DSL","parameters":[{"name":"type","type":[{"name":"Type","namespace":"Flow\\Types","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"OptionalType","namespace":"Flow\\Types\\Type\\Logical","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEB0ZW1wbGF0ZSBUCiAqCiAqIEBwYXJhbSBUeXBlPFQ+ICR0eXBlCiAqCiAqIEByZXR1cm4gT3B0aW9uYWxUeXBlPFQ+CiAqLw=="},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":152,"slug":"type-from-array","name":"type_from_array","namespace":"Flow\\Types\\DSL","parameters":[{"name":"data","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Type","namespace":"Flow\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheTxzdHJpbmcsIG1peGVkPiAkZGF0YQogKgogKiBAcmV0dXJuIFR5cGU8bWl4ZWQ+CiAqLw=="},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":163,"slug":"type-is-nullable","name":"type_is_nullable","namespace":"Flow\\Types\\DSL","parameters":[{"name":"type","type":[{"name":"Type","namespace":"Flow\\Types","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEB0ZW1wbGF0ZSBUCiAqCiAqIEBwYXJhbSBUeXBlPFQ+ICR0eXBlCiAqLw=="},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":179,"slug":"type-bare","name":"type_bare","namespace":"Flow\\Types\\DSL","parameters":[{"name":"type","type":[{"name":"Type","namespace":"Flow\\Types","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Type","namespace":"Flow\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIFN0cmlwIGV4YWN0bHkgb25lIGxldmVsIG9mIG51bGxhYmlsaXR5LCB3aGljaGV2ZXIgb2YgdGhlIHR3byBzcGVsbGluZ3MgY2FycmllcyBpdAogKiAoT3B0aW9uYWxUeXBlLCBvciBhIFVuaW9uVHlwZSBjb250YWluaW5nIE51bGxUeXBlKS4gVG90YWw6IGEgTk9UIE5VTEwgdHlwZSBpcyByZXR1cm5lZCB1bmNoYW5nZWQuCiAqCiAqIEB0ZW1wbGF0ZSBUCiAqCiAqIEBwYXJhbSBUeXBlPFQ+ICR0eXBlCiAqCiAqIEByZXR1cm4gVHlwZTxtaXhlZD4KICov"},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":189,"slug":"type-equals","name":"type_equals","namespace":"Flow\\Types\\DSL","parameters":[{"name":"left","type":[{"name":"Type","namespace":"Flow\\Types","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"right","type":[{"name":"Type","namespace":"Flow\\Types","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBUeXBlPG1peGVkPiAkbGVmdAogKiBAcGFyYW0gVHlwZTxtaXhlZD4gJHJpZ2h0CiAqLw=="},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":202,"slug":"types","name":"types","namespace":"Flow\\Types\\DSL","parameters":[{"name":"types","type":[{"name":"Type","namespace":"Flow\\Types","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"Types","namespace":"Flow\\Types\\Type","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEB0ZW1wbGF0ZSBUCiAqCiAqIEBwYXJhbSBUeXBlPFQ+IC4uLiR0eXBlcwogKgogKiBAcmV0dXJuIFR5cGVzPFQ+CiAqLw=="},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":215,"slug":"type-list","name":"type_list","namespace":"Flow\\Types\\DSL","parameters":[{"name":"element","type":[{"name":"Type","namespace":"Flow\\Types","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ListType","namespace":"Flow\\Types\\Type\\Logical","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEB0ZW1wbGF0ZSBUCiAqCiAqIEBwYXJhbSBUeXBlPFQ+ICRlbGVtZW50CiAqCiAqIEByZXR1cm4gTGlzdFR5cGU8VD4KICov"},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":230,"slug":"type-map","name":"type_map","namespace":"Flow\\Types\\DSL","parameters":[{"name":"key_type","type":[{"name":"Type","namespace":"Flow\\Types","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"value_type","type":[{"name":"Type","namespace":"Flow\\Types","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"MapType","namespace":"Flow\\Types\\Type\\Logical","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEB0ZW1wbGF0ZSBUS2V5IG9mIGFycmF5LWtleQogKiBAdGVtcGxhdGUgVFZhbHVlCiAqCiAqIEBwYXJhbSBUeXBlPFRLZXk+ICRrZXlfdHlwZQogKiBAcGFyYW0gVHlwZTxUVmFsdWU+ICR2YWx1ZV90eXBlCiAqCiAqIEByZXR1cm4gTWFwVHlwZTxUS2V5LCBUVmFsdWU+CiAqLw=="},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":236,"slug":"type-json","name":"type_json","namespace":"Flow\\Types\\DSL","parameters":[],"return_type":[{"name":"JsonType","namespace":"Flow\\Types\\Type\\Logical","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":242,"slug":"type-datetime","name":"type_datetime","namespace":"Flow\\Types\\DSL","parameters":[{"name":"zone","type":[{"name":"DateTimeZone","namespace":"","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'UTC'"}],"return_type":[{"name":"DateTimeType","namespace":"Flow\\Types\\Type\\Logical","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":248,"slug":"type-date","name":"type_date","namespace":"Flow\\Types\\DSL","parameters":[],"return_type":[{"name":"DateType","namespace":"Flow\\Types\\Type\\Logical","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":254,"slug":"type-time","name":"type_time","namespace":"Flow\\Types\\DSL","parameters":[],"return_type":[{"name":"TimeType","namespace":"Flow\\Types\\Type\\Logical","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":260,"slug":"type-time-zone","name":"type_time_zone","namespace":"Flow\\Types\\DSL","parameters":[],"return_type":[{"name":"TimeZoneType","namespace":"Flow\\Types\\Type\\Logical","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":266,"slug":"type-xml","name":"type_xml","namespace":"Flow\\Types\\DSL","parameters":[],"return_type":[{"name":"XMLType","namespace":"Flow\\Types\\Type\\Logical","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":272,"slug":"type-xml-element","name":"type_xml_element","namespace":"Flow\\Types\\DSL","parameters":[],"return_type":[{"name":"XMLElementType","namespace":"Flow\\Types\\Type\\Logical","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":278,"slug":"type-uuid","name":"type_uuid","namespace":"Flow\\Types\\DSL","parameters":[],"return_type":[{"name":"UuidType","namespace":"Flow\\Types\\Type\\Logical","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":284,"slug":"type-integer","name":"type_integer","namespace":"Flow\\Types\\DSL","parameters":[],"return_type":[{"name":"IntegerType","namespace":"Flow\\Types\\Type\\Native","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":290,"slug":"type-string","name":"type_string","namespace":"Flow\\Types\\DSL","parameters":[],"return_type":[{"name":"StringType","namespace":"Flow\\Types\\Type\\Native","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":296,"slug":"type-float","name":"type_float","namespace":"Flow\\Types\\DSL","parameters":[],"return_type":[{"name":"FloatType","namespace":"Flow\\Types\\Type\\Native","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":302,"slug":"type-boolean","name":"type_boolean","namespace":"Flow\\Types\\DSL","parameters":[],"return_type":[{"name":"BooleanType","namespace":"Flow\\Types\\Type\\Native","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":315,"slug":"type-instance-of","name":"type_instance_of","namespace":"Flow\\Types\\DSL","parameters":[{"name":"class","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"InstanceOfType","namespace":"Flow\\Types\\Type\\Logical","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEB0ZW1wbGF0ZSBUIG9mIG9iamVjdAogKgogKiBAcGFyYW0gY2xhc3Mtc3RyaW5nPFQ+ICRjbGFzcwogKgogKiBAcmV0dXJuIEluc3RhbmNlT2ZUeXBlPFQ+CiAqLw=="},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":321,"slug":"type-object","name":"type_object","namespace":"Flow\\Types\\DSL","parameters":[],"return_type":[{"name":"ObjectType","namespace":"Flow\\Types\\Type\\Native","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":327,"slug":"type-scalar","name":"type_scalar","namespace":"Flow\\Types\\DSL","parameters":[],"return_type":[{"name":"ScalarType","namespace":"Flow\\Types\\Type\\Logical","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":333,"slug":"type-resource","name":"type_resource","namespace":"Flow\\Types\\DSL","parameters":[],"return_type":[{"name":"ResourceType","namespace":"Flow\\Types\\Type\\Native","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":339,"slug":"type-array","name":"type_array","namespace":"Flow\\Types\\DSL","parameters":[],"return_type":[{"name":"ArrayType","namespace":"Flow\\Types\\Type\\Native","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":345,"slug":"type-callable","name":"type_callable","namespace":"Flow\\Types\\DSL","parameters":[],"return_type":[{"name":"CallableType","namespace":"Flow\\Types\\Type\\Native","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":351,"slug":"type-null","name":"type_null","namespace":"Flow\\Types\\DSL","parameters":[],"return_type":[{"name":"NullType","namespace":"Flow\\Types\\Type\\Native","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":357,"slug":"type-mixed","name":"type_mixed","namespace":"Flow\\Types\\DSL","parameters":[],"return_type":[{"name":"MixedType","namespace":"Flow\\Types\\Type\\Native","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":363,"slug":"type-positive-integer","name":"type_positive_integer","namespace":"Flow\\Types\\DSL","parameters":[],"return_type":[{"name":"PositiveIntegerType","namespace":"Flow\\Types\\Type\\Logical","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":369,"slug":"type-non-empty-string","name":"type_non_empty_string","namespace":"Flow\\Types\\DSL","parameters":[],"return_type":[{"name":"NonEmptyStringType","namespace":"Flow\\Types\\Type\\Logical","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":375,"slug":"type-empty-array","name":"type_empty_array","namespace":"Flow\\Types\\DSL","parameters":[],"return_type":[{"name":"EmptyArrayType","namespace":"Flow\\Types\\Type\\Native","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":388,"slug":"type-enum","name":"type_enum","namespace":"Flow\\Types\\DSL","parameters":[{"name":"class","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"EnumType","namespace":"Flow\\Types\\Type\\Native","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEB0ZW1wbGF0ZSBUIG9mIFVuaXRFbnVtCiAqCiAqIEBwYXJhbSBjbGFzcy1zdHJpbmc8VD4gJGNsYXNzCiAqCiAqIEByZXR1cm4gRW51bVR5cGU8VD4KICov"},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":401,"slug":"type-literal","name":"type_literal","namespace":"Flow\\Types\\DSL","parameters":[{"name":"value","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"LiteralType","namespace":"Flow\\Types\\Type\\Logical","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEB0ZW1wbGF0ZSBUIG9mIGJvb2x8ZmxvYXR8aW50fHN0cmluZwogKgogKiBAcGFyYW0gVCAkdmFsdWUKICoKICogQHJldHVybiBMaXRlcmFsVHlwZTxUPgogKi8="},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":407,"slug":"type-html","name":"type_html","namespace":"Flow\\Types\\DSL","parameters":[],"return_type":[{"name":"HTMLType","namespace":"Flow\\Types\\Type\\Logical","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":413,"slug":"type-html-element","name":"type_html_element","namespace":"Flow\\Types\\DSL","parameters":[],"return_type":[{"name":"HTMLElementType","namespace":"Flow\\Types\\Type\\Logical","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":425,"slug":"type-is","name":"type_is","namespace":"Flow\\Types\\DSL","parameters":[{"name":"type","type":[{"name":"Type","namespace":"Flow\\Types","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"typeClass","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEB0ZW1wbGF0ZSBUCiAqCiAqIEBwYXJhbSBUeXBlPFQ+ICR0eXBlCiAqIEBwYXJhbSBjbGFzcy1zdHJpbmc8VHlwZTxtaXhlZD4+ICR0eXBlQ2xhc3MKICov"},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":438,"slug":"type-is-any","name":"type_is_any","namespace":"Flow\\Types\\DSL","parameters":[{"name":"type","type":[{"name":"Type","namespace":"Flow\\Types","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"typeClass","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"typeClasses","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEB0ZW1wbGF0ZSBUCiAqCiAqIEBwYXJhbSBUeXBlPFQ+ICR0eXBlCiAqIEBwYXJhbSBjbGFzcy1zdHJpbmc8VHlwZTxtaXhlZD4+ICR0eXBlQ2xhc3MKICogQHBhcmFtIGNsYXNzLXN0cmluZzxUeXBlPG1peGVkPj4gLi4uJHR5cGVDbGFzc2VzCiAqLw=="},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":447,"slug":"get-type","name":"get_type","namespace":"Flow\\Types\\DSL","parameters":[{"name":"value","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Type","namespace":"Flow\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEByZXR1cm4gVHlwZTxtaXhlZD4KICov"},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":460,"slug":"type-class-string","name":"type_class_string","namespace":"Flow\\Types\\DSL","parameters":[{"name":"class","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"ClassStringType","namespace":"Flow\\Types\\Type\\Logical","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEB0ZW1wbGF0ZSBUIG9mIG9iamVjdAogKgogKiBAcGFyYW0gbnVsbHxjbGFzcy1zdHJpbmc8VD4gJGNsYXNzCiAqCiAqIEByZXR1cm4gKCRjbGFzcyBpcyBudWxsID8gQ2xhc3NTdHJpbmdUeXBlPGNsYXNzLXN0cmluZz4gOiBDbGFzc1N0cmluZ1R5cGU8Y2xhc3Mtc3RyaW5nPFQ+PikKICov"},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":466,"slug":"dom-element-to-string","name":"dom_element_to_string","namespace":"Flow\\Types\\DSL","parameters":[{"name":"element","type":[{"name":"DOMElement","namespace":"","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"format_output","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"preserver_white_space","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"false","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/parquet\/src\/Flow\/Parquet\/DSL\/functions.php","start_line_in_file":14,"slug":"parquet-column","name":"parquet_column","namespace":"Flow\\Parquet\\DSL","parameters":[{"name":"path","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ColumnRef","namespace":"Flow\\Parquet\\Filter","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PARQUET","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/parquet\/src\/Flow\/Parquet\/DSL\/functions.php","start_line_in_file":20,"slug":"parquet-query","name":"parquet_query","namespace":"Flow\\Parquet\\DSL","parameters":[],"return_type":[{"name":"Query","namespace":"Flow\\Parquet","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PARQUET","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":134,"slug":"column","name":"column","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"type","type":[{"name":"ColumnType","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ColumnDefinition","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIGNvbHVtbiBkZWZpbml0aW9uIGZvciBDUkVBVEUgVEFCTEUuCiAqCiAqIEBwYXJhbSBzdHJpbmcgJG5hbWUgQ29sdW1uIG5hbWUKICogQHBhcmFtIENvbHVtblR5cGUgJHR5cGUgQ29sdW1uIGRhdGEgdHlwZQogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":143,"slug":"catalog","name":"catalog","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"schemas","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Catalog","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBsaXN0PFNjaGVtYT4gJHNjaGVtYXMKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":154,"slug":"primary-key","name":"primary_key","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"columns","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"PrimaryKeyConstraint","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema\\Constraint","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFBSSU1BUlkgS0VZIGNvbnN0cmFpbnQuCiAqCiAqIEBwYXJhbSBzdHJpbmcgLi4uJGNvbHVtbnMgQ29sdW1ucyB0aGF0IGZvcm0gdGhlIHByaW1hcnkga2V5CiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":165,"slug":"unique-constraint","name":"unique_constraint","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"columns","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"UniqueConstraint","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema\\Constraint","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFVOSVFVRSBjb25zdHJhaW50LgogKgogKiBAcGFyYW0gc3RyaW5nIC4uLiRjb2x1bW5zIENvbHVtbnMgdGhhdCBtdXN0IGJlIHVuaXF1ZSB0b2dldGhlcgogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":178,"slug":"foreign-key","name":"foreign_key","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"columns","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"referenceTable","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"referenceColumns","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"}],"return_type":[{"name":"ForeignKeyConstraint","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema\\Constraint","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIEZPUkVJR04gS0VZIGNvbnN0cmFpbnQuCiAqCiAqIEBwYXJhbSBsaXN0PHN0cmluZz4gJGNvbHVtbnMgTG9jYWwgY29sdW1ucwogKiBAcGFyYW0gc3RyaW5nICRyZWZlcmVuY2VUYWJsZSBSZWZlcmVuY2VkIHRhYmxlCiAqIEBwYXJhbSBsaXN0PHN0cmluZz4gJHJlZmVyZW5jZUNvbHVtbnMgUmVmZXJlbmNlZCBjb2x1bW5zIChkZWZhdWx0cyB0byBzYW1lIGFzICRjb2x1bW5zIGlmIGVtcHR5KQogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":187,"slug":"check-constraint","name":"check_constraint","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"condition","type":[{"name":"Condition","namespace":"Flow\\PostgreSql\\QueryBuilder\\Condition","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"CheckConstraint","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema\\Constraint","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIENIRUNLIGNvbnN0cmFpbnQuCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":218,"slug":"create","name":"create","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"CreateFactory","namespace":"Flow\\PostgreSql\\QueryBuilder\\Factory","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"SCHEMA"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIGZhY3RvcnkgZm9yIGJ1aWxkaW5nIENSRUFURSBzdGF0ZW1lbnRzLgogKgogKiBQcm92aWRlcyBhIHVuaWZpZWQgZW50cnkgcG9pbnQgZm9yIGFsbCBDUkVBVEUgb3BlcmF0aW9uczoKICogLSBjcmVhdGUoKS0+dGFibGUoKSAtIENSRUFURSBUQUJMRQogKiAtIGNyZWF0ZSgpLT50YWJsZUFzKCkgLSBDUkVBVEUgVEFCTEUgQVMKICogLSBjcmVhdGUoKS0+aW5kZXgoKSAtIENSRUFURSBJTkRFWAogKiAtIGNyZWF0ZSgpLT52aWV3KCkgLSBDUkVBVEUgVklFVwogKiAtIGNyZWF0ZSgpLT5tYXRlcmlhbGl6ZWRWaWV3KCkgLSBDUkVBVEUgTUFURVJJQUxJWkVEIFZJRVcKICogLSBjcmVhdGUoKS0+c2VxdWVuY2UoKSAtIENSRUFURSBTRVFVRU5DRQogKiAtIGNyZWF0ZSgpLT5zY2hlbWEoKSAtIENSRUFURSBTQ0hFTUEKICogLSBjcmVhdGUoKS0+cm9sZSgpIC0gQ1JFQVRFIFJPTEUKICogLSBjcmVhdGUoKS0+ZnVuY3Rpb24oKSAtIENSRUFURSBGVU5DVElPTgogKiAtIGNyZWF0ZSgpLT5wcm9jZWR1cmUoKSAtIENSRUFURSBQUk9DRURVUkUKICogLSBjcmVhdGUoKS0+dHJpZ2dlcigpIC0gQ1JFQVRFIFRSSUdHRVIKICogLSBjcmVhdGUoKS0+cnVsZSgpIC0gQ1JFQVRFIFJVTEUKICogLSBjcmVhdGUoKS0+ZXh0ZW5zaW9uKCkgLSBDUkVBVEUgRVhURU5TSU9OCiAqIC0gY3JlYXRlKCktPmNvbXBvc2l0ZVR5cGUoKSAtIENSRUFURSBUWVBFIChjb21wb3NpdGUpCiAqIC0gY3JlYXRlKCktPmVudW1UeXBlKCkgLSBDUkVBVEUgVFlQRSAoZW51bSkKICogLSBjcmVhdGUoKS0+cmFuZ2VUeXBlKCkgLSBDUkVBVEUgVFlQRSAocmFuZ2UpCiAqIC0gY3JlYXRlKCktPmRvbWFpbigpIC0gQ1JFQVRFIERPTUFJTgogKgogKiBFeGFtcGxlOiBjcmVhdGUoKS0+dGFibGUoJ3VzZXJzJyktPmNvbHVtbnMoY29sX2RlZignaWQnLCBjb2x1bW5fdHlwZV9zZXJpYWwoKSkpCiAqIEV4YW1wbGU6IGNyZWF0ZSgpLT5pbmRleCgnaWR4X2VtYWlsJyktPm9uKCd1c2VycycpLT5jb2x1bW5zKCdlbWFpbCcpCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":247,"slug":"drop","name":"drop","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"DropFactory","namespace":"Flow\\PostgreSql\\QueryBuilder\\Factory","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"SCHEMA"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIGZhY3RvcnkgZm9yIGJ1aWxkaW5nIERST1Agc3RhdGVtZW50cy4KICoKICogUHJvdmlkZXMgYSB1bmlmaWVkIGVudHJ5IHBvaW50IGZvciBhbGwgRFJPUCBvcGVyYXRpb25zOgogKiAtIGRyb3AoKS0+dGFibGUoKSAtIERST1AgVEFCTEUKICogLSBkcm9wKCktPmluZGV4KCkgLSBEUk9QIElOREVYCiAqIC0gZHJvcCgpLT52aWV3KCkgLSBEUk9QIFZJRVcKICogLSBkcm9wKCktPm1hdGVyaWFsaXplZFZpZXcoKSAtIERST1AgTUFURVJJQUxJWkVEIFZJRVcKICogLSBkcm9wKCktPnNlcXVlbmNlKCkgLSBEUk9QIFNFUVVFTkNFCiAqIC0gZHJvcCgpLT5zY2hlbWEoKSAtIERST1AgU0NIRU1BCiAqIC0gZHJvcCgpLT5yb2xlKCkgLSBEUk9QIFJPTEUKICogLSBkcm9wKCktPmZ1bmN0aW9uKCkgLSBEUk9QIEZVTkNUSU9OCiAqIC0gZHJvcCgpLT5wcm9jZWR1cmUoKSAtIERST1AgUFJPQ0VEVVJFCiAqIC0gZHJvcCgpLT50cmlnZ2VyKCkgLSBEUk9QIFRSSUdHRVIKICogLSBkcm9wKCktPnJ1bGUoKSAtIERST1AgUlVMRQogKiAtIGRyb3AoKS0+ZXh0ZW5zaW9uKCkgLSBEUk9QIEVYVEVOU0lPTgogKiAtIGRyb3AoKS0+dHlwZSgpIC0gRFJPUCBUWVBFCiAqIC0gZHJvcCgpLT5kb21haW4oKSAtIERST1AgRE9NQUlOCiAqIC0gZHJvcCgpLT5vd25lZCgpIC0gRFJPUCBPV05FRAogKgogKiBFeGFtcGxlOiBkcm9wKCktPnRhYmxlKCd1c2VycycsICdvcmRlcnMnKS0+aWZFeGlzdHMoKS0+Y2FzY2FkZSgpCiAqIEV4YW1wbGU6IGRyb3AoKS0+aW5kZXgoJ2lkeF9lbWFpbCcpLT5pZkV4aXN0cygpCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":281,"slug":"alter","name":"alter","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"AlterFactory","namespace":"Flow\\PostgreSql\\QueryBuilder\\Factory","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"SCHEMA"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIGZhY3RvcnkgZm9yIGJ1aWxkaW5nIEFMVEVSIHN0YXRlbWVudHMuCiAqCiAqIFByb3ZpZGVzIGEgdW5pZmllZCBlbnRyeSBwb2ludCBmb3IgYWxsIEFMVEVSIG9wZXJhdGlvbnM6CiAqIC0gYWx0ZXIoKS0+dGFibGUoKSAtIEFMVEVSIFRBQkxFCiAqIC0gYWx0ZXIoKS0+aW5kZXgoKSAtIEFMVEVSIElOREVYCiAqIC0gYWx0ZXIoKS0+dmlldygpIC0gQUxURVIgVklFVwogKiAtIGFsdGVyKCktPm1hdGVyaWFsaXplZFZpZXcoKSAtIEFMVEVSIE1BVEVSSUFMSVpFRCBWSUVXCiAqIC0gYWx0ZXIoKS0+c2VxdWVuY2UoKSAtIEFMVEVSIFNFUVVFTkNFCiAqIC0gYWx0ZXIoKS0+c2NoZW1hKCkgLSBBTFRFUiBTQ0hFTUEKICogLSBhbHRlcigpLT5yb2xlKCkgLSBBTFRFUiBST0xFCiAqIC0gYWx0ZXIoKS0+ZnVuY3Rpb24oKSAtIEFMVEVSIEZVTkNUSU9OCiAqIC0gYWx0ZXIoKS0+cHJvY2VkdXJlKCkgLSBBTFRFUiBQUk9DRURVUkUKICogLSBhbHRlcigpLT50cmlnZ2VyKCkgLSBBTFRFUiBUUklHR0VSCiAqIC0gYWx0ZXIoKS0+ZXh0ZW5zaW9uKCkgLSBBTFRFUiBFWFRFTlNJT04KICogLSBhbHRlcigpLT5lbnVtVHlwZSgpIC0gQUxURVIgVFlQRSAoZW51bSkKICogLSBhbHRlcigpLT5kb21haW4oKSAtIEFMVEVSIERPTUFJTgogKgogKiBSZW5hbWUgb3BlcmF0aW9ucyBhcmUgYWxzbyB1bmRlciBhbHRlcigpOgogKiAtIGFsdGVyKCktPmluZGV4KCdvbGQnKS0+cmVuYW1lVG8oJ25ldycpCiAqIC0gYWx0ZXIoKS0+dmlldygnb2xkJyktPnJlbmFtZVRvKCduZXcnKQogKiAtIGFsdGVyKCktPnNjaGVtYSgnb2xkJyktPnJlbmFtZVRvKCduZXcnKQogKiAtIGFsdGVyKCktPnJvbGUoJ29sZCcpLT5yZW5hbWVUbygnbmV3JykKICogLSBhbHRlcigpLT50cmlnZ2VyKCdvbGQnKS0+b24oJ3RhYmxlJyktPnJlbmFtZVRvKCduZXcnKQogKgogKiBFeGFtcGxlOiBhbHRlcigpLT50YWJsZSgndXNlcnMnKS0+YWRkQ29sdW1uKGNvbF9kZWYoJ2VtYWlsJywgY29sdW1uX3R5cGVfdGV4dCgpKSkKICogRXhhbXBsZTogYWx0ZXIoKS0+c2VxdWVuY2UoJ3VzZXJfaWRfc2VxJyktPnJlc3RhcnQoMTAwMCkKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":292,"slug":"truncate-table","name":"truncate_table","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"tables","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"TruncateFinalStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema\\Truncate","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFRSVU5DQVRFIFRBQkxFIGJ1aWxkZXIuCiAqCiAqIEBwYXJhbSBzdHJpbmcgLi4uJHRhYmxlcyBUYWJsZSBuYW1lcyB0byB0cnVuY2F0ZQogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":310,"slug":"refresh-materialized-view","name":"refresh_materialized_view","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"schema","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"RefreshMatViewOptionsStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema\\View\\RefreshMaterializedView","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"SCHEMA"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFJFRlJFU0ggTUFURVJJQUxJWkVEIFZJRVcgYnVpbGRlci4KICoKICogRXhhbXBsZTogcmVmcmVzaF9tYXRlcmlhbGl6ZWRfdmlldygndXNlcl9zdGF0cycpCiAqIFByb2R1Y2VzOiBSRUZSRVNIIE1BVEVSSUFMSVpFRCBWSUVXIHVzZXJfc3RhdHMKICoKICogRXhhbXBsZTogcmVmcmVzaF9tYXRlcmlhbGl6ZWRfdmlldygndXNlcl9zdGF0cycpLT5jb25jdXJyZW50bHkoKS0+d2l0aERhdGEoKQogKiBQcm9kdWNlczogUkVGUkVTSCBNQVRFUklBTElaRUQgVklFVyBDT05DVVJSRU5UTFkgdXNlcl9zdGF0cyBXSVRIIERBVEEKICoKICogQHBhcmFtIHN0cmluZyAkbmFtZSBWaWV3IG5hbWUgKG1heSBpbmNsdWRlIHNjaGVtYSBhcyAic2NoZW1hLnZpZXciKQogKiBAcGFyYW0gbnVsbHxzdHJpbmcgJHNjaGVtYSBTY2hlbWEgbmFtZSAob3B0aW9uYWwsIG92ZXJyaWRlcyBwYXJzZWQgc2NoZW1hKQogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":319,"slug":"ref-action-cascade","name":"ref_action_cascade","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ReferentialAction","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEdldCBhIENBU0NBREUgcmVmZXJlbnRpYWwgYWN0aW9uLgogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":328,"slug":"ref-action-restrict","name":"ref_action_restrict","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ReferentialAction","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEdldCBhIFJFU1RSSUNUIHJlZmVyZW50aWFsIGFjdGlvbi4KICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":337,"slug":"ref-action-set-null","name":"ref_action_set_null","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ReferentialAction","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEdldCBhIFNFVCBOVUxMIHJlZmVyZW50aWFsIGFjdGlvbi4KICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":346,"slug":"ref-action-set-default","name":"ref_action_set_default","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ReferentialAction","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEdldCBhIFNFVCBERUZBVUxUIHJlZmVyZW50aWFsIGFjdGlvbi4KICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":355,"slug":"ref-action-no-action","name":"ref_action_no_action","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ReferentialAction","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEdldCBhIE5PIEFDVElPTiByZWZlcmVudGlhbCBhY3Rpb24uCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":370,"slug":"reindex-index","name":"reindex_index","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ReindexFinalStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema\\Index\\Reindex","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"SCHEMA"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIFN0YXJ0IGJ1aWxkaW5nIGEgUkVJTkRFWCBJTkRFWCBzdGF0ZW1lbnQuCiAqCiAqIFVzZSBjaGFpbmFibGUgbWV0aG9kczogLT5jb25jdXJyZW50bHkoKSwgLT52ZXJib3NlKCksIC0+dGFibGVzcGFjZSgpCiAqCiAqIEV4YW1wbGU6IHJlaW5kZXhfaW5kZXgoJ2lkeF91c2Vyc19lbWFpbCcpLT5jb25jdXJyZW50bHkoKQogKgogKiBAcGFyYW0gc3RyaW5nICRuYW1lIFRoZSBpbmRleCBuYW1lIChtYXkgaW5jbHVkZSBzY2hlbWE6IHNjaGVtYS5pbmRleCkKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":385,"slug":"reindex-table","name":"reindex_table","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ReindexFinalStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema\\Index\\Reindex","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"SCHEMA"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIFN0YXJ0IGJ1aWxkaW5nIGEgUkVJTkRFWCBUQUJMRSBzdGF0ZW1lbnQuCiAqCiAqIFVzZSBjaGFpbmFibGUgbWV0aG9kczogLT5jb25jdXJyZW50bHkoKSwgLT52ZXJib3NlKCksIC0+dGFibGVzcGFjZSgpCiAqCiAqIEV4YW1wbGU6IHJlaW5kZXhfdGFibGUoJ3VzZXJzJyktPmNvbmN1cnJlbnRseSgpCiAqCiAqIEBwYXJhbSBzdHJpbmcgJG5hbWUgVGhlIHRhYmxlIG5hbWUgKG1heSBpbmNsdWRlIHNjaGVtYTogc2NoZW1hLnRhYmxlKQogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":400,"slug":"reindex-schema","name":"reindex_schema","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ReindexFinalStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema\\Index\\Reindex","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"SCHEMA"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIFN0YXJ0IGJ1aWxkaW5nIGEgUkVJTkRFWCBTQ0hFTUEgc3RhdGVtZW50LgogKgogKiBVc2UgY2hhaW5hYmxlIG1ldGhvZHM6IC0+Y29uY3VycmVudGx5KCksIC0+dmVyYm9zZSgpLCAtPnRhYmxlc3BhY2UoKQogKgogKiBFeGFtcGxlOiByZWluZGV4X3NjaGVtYSgncHVibGljJyktPmNvbmN1cnJlbnRseSgpCiAqCiAqIEBwYXJhbSBzdHJpbmcgJG5hbWUgVGhlIHNjaGVtYSBuYW1lCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":415,"slug":"reindex-database","name":"reindex_database","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ReindexFinalStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema\\Index\\Reindex","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"SCHEMA"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIFN0YXJ0IGJ1aWxkaW5nIGEgUkVJTkRFWCBEQVRBQkFTRSBzdGF0ZW1lbnQuCiAqCiAqIFVzZSBjaGFpbmFibGUgbWV0aG9kczogLT5jb25jdXJyZW50bHkoKSwgLT52ZXJib3NlKCksIC0+dGFibGVzcGFjZSgpCiAqCiAqIEV4YW1wbGU6IHJlaW5kZXhfZGF0YWJhc2UoJ215ZGInKS0+Y29uY3VycmVudGx5KCkKICoKICogQHBhcmFtIHN0cmluZyAkbmFtZSBUaGUgZGF0YWJhc2UgbmFtZQogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":430,"slug":"index-col","name":"index_col","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"IndexColumn","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema\\Index","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"SCHEMA"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBpbmRleCBjb2x1bW4gc3BlY2lmaWNhdGlvbi4KICoKICogVXNlIGNoYWluYWJsZSBtZXRob2RzOiAtPmFzYygpLCAtPmRlc2MoKSwgLT5udWxsc0ZpcnN0KCksIC0+bnVsbHNMYXN0KCksIC0+b3BjbGFzcygpLCAtPmNvbGxhdGUoKQogKgogKiBFeGFtcGxlOiBpbmRleF9jb2woJ2VtYWlsJyktPmRlc2MoKS0+bnVsbHNMYXN0KCkKICoKICogQHBhcmFtIHN0cmluZyAkbmFtZSBUaGUgY29sdW1uIG5hbWUKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":445,"slug":"index-expr","name":"index_expr","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"expression","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"IndexColumn","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema\\Index","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"SCHEMA"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBpbmRleCBjb2x1bW4gc3BlY2lmaWNhdGlvbiBmcm9tIGFuIGV4cHJlc3Npb24uCiAqCiAqIFVzZSBjaGFpbmFibGUgbWV0aG9kczogLT5hc2MoKSwgLT5kZXNjKCksIC0+bnVsbHNGaXJzdCgpLCAtPm51bGxzTGFzdCgpLCAtPm9wY2xhc3MoKSwgLT5jb2xsYXRlKCkKICoKICogRXhhbXBsZTogaW5kZXhfZXhwcihmbl9jYWxsKCdsb3dlcicsIGNvbCgnZW1haWwnKSkpLT5kZXNjKCkKICoKICogQHBhcmFtIEV4cHJlc3Npb24gJGV4cHJlc3Npb24gVGhlIGV4cHJlc3Npb24gdG8gaW5kZXgKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":454,"slug":"index-method-btree","name":"index_method_btree","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"IndexMethod","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema\\Index","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEdldCB0aGUgQlRSRUUgaW5kZXggbWV0aG9kLgogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":463,"slug":"index-method-hash","name":"index_method_hash","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"IndexMethod","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema\\Index","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEdldCB0aGUgSEFTSCBpbmRleCBtZXRob2QuCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":472,"slug":"index-method-gist","name":"index_method_gist","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"IndexMethod","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema\\Index","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEdldCB0aGUgR0lTVCBpbmRleCBtZXRob2QuCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":481,"slug":"index-method-spgist","name":"index_method_spgist","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"IndexMethod","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema\\Index","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEdldCB0aGUgU1BHSVNUIGluZGV4IG1ldGhvZC4KICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":490,"slug":"index-method-gin","name":"index_method_gin","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"IndexMethod","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema\\Index","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEdldCB0aGUgR0lOIGluZGV4IG1ldGhvZC4KICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":499,"slug":"index-method-brin","name":"index_method_brin","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"IndexMethod","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema\\Index","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEdldCB0aGUgQlJJTiBpbmRleCBtZXRob2QuCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":511,"slug":"vacuum","name":"vacuum","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"VacuumFinalStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Utility","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFZBQ1VVTSBidWlsZGVyLgogKgogKiBFeGFtcGxlOiB2YWN1dW0oKS0+dGFibGUoJ3VzZXJzJykKICogUHJvZHVjZXM6IFZBQ1VVTSB1c2VycwogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":523,"slug":"analyze","name":"analyze","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"AnalyzeFinalStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Utility","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBBTkFMWVpFIGJ1aWxkZXIuCiAqCiAqIEV4YW1wbGU6IGFuYWx5emUoKS0+dGFibGUoJ3VzZXJzJykKICogUHJvZHVjZXM6IEFOQUxZWkUgdXNlcnMKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":537,"slug":"explain","name":"explain","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"query","type":[{"name":"SelectFinalStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Select","is_nullable":false,"is_variadic":false},{"name":"InsertBuilder","namespace":"Flow\\PostgreSql\\QueryBuilder\\Insert","is_nullable":false,"is_variadic":false},{"name":"UpdateBuilder","namespace":"Flow\\PostgreSql\\QueryBuilder\\Update","is_nullable":false,"is_variadic":false},{"name":"DeleteBuilder","namespace":"Flow\\PostgreSql\\QueryBuilder\\Delete","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ExplainFinalStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Utility","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBFWFBMQUlOIGJ1aWxkZXIgZm9yIGEgcXVlcnkuCiAqCiAqIEV4YW1wbGU6IGV4cGxhaW4oc2VsZWN0KCktPmZyb20oJ3VzZXJzJykpCiAqIFByb2R1Y2VzOiBFWFBMQUlOIFNFTEVDVCAqIEZST00gdXNlcnMKICoKICogQHBhcmFtIERlbGV0ZUJ1aWxkZXJ8SW5zZXJ0QnVpbGRlcnxTZWxlY3RGaW5hbFN0ZXB8VXBkYXRlQnVpbGRlciAkcXVlcnkgUXVlcnkgdG8gZXhwbGFpbgogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":549,"slug":"lock-table","name":"lock_table","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"tables","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"LockFinalStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Utility","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIExPQ0sgVEFCTEUgYnVpbGRlci4KICoKICogRXhhbXBsZTogbG9ja190YWJsZSgndXNlcnMnLCAnb3JkZXJzJyktPmFjY2Vzc0V4Y2x1c2l2ZSgpCiAqIFByb2R1Y2VzOiBMT0NLIFRBQkxFIHVzZXJzLCBvcmRlcnMgSU4gQUNDRVNTIEVYQ0xVU0lWRSBNT0RFCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":564,"slug":"comment","name":"comment","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"target","type":[{"name":"CommentTarget","namespace":"Flow\\PostgreSql\\QueryBuilder\\Utility","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"CommentFinalStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Utility","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIENPTU1FTlQgT04gYnVpbGRlci4KICoKICogRXhhbXBsZTogY29tbWVudChDb21tZW50VGFyZ2V0OjpUQUJMRSwgJ3VzZXJzJyktPmlzKCdVc2VyIGFjY291bnRzIHRhYmxlJykKICogUHJvZHVjZXM6IENPTU1FTlQgT04gVEFCTEUgdXNlcnMgSVMgJ1VzZXIgYWNjb3VudHMgdGFibGUnCiAqCiAqIEBwYXJhbSBDb21tZW50VGFyZ2V0ICR0YXJnZXQgVGFyZ2V0IHR5cGUgKFRBQkxFLCBDT0xVTU4sIElOREVYLCBldGMuKQogKiBAcGFyYW0gc3RyaW5nICRuYW1lIFRhcmdldCBuYW1lICh1c2UgJ3RhYmxlLmNvbHVtbicgZm9yIENPTFVNTiB0YXJnZXRzKQogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":576,"slug":"cluster","name":"cluster","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ClusterFinalStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Utility","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIENMVVNURVIgYnVpbGRlci4KICoKICogRXhhbXBsZTogY2x1c3RlcigpLT50YWJsZSgndXNlcnMnKS0+dXNpbmcoJ2lkeF91c2Vyc19wa2V5JykKICogUHJvZHVjZXM6IENMVVNURVIgdXNlcnMgVVNJTkcgaWR4X3VzZXJzX3BrZXkKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":590,"slug":"discard","name":"discard","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"type","type":[{"name":"DiscardType","namespace":"Flow\\PostgreSql\\QueryBuilder\\Utility","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"DiscardFinalStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Utility","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIERJU0NBUkQgYnVpbGRlci4KICoKICogRXhhbXBsZTogZGlzY2FyZChEaXNjYXJkVHlwZTo6QUxMKQogKiBQcm9kdWNlczogRElTQ0FSRCBBTEwKICoKICogQHBhcmFtIERpc2NhcmRUeXBlICR0eXBlIFR5cGUgb2YgcmVzb3VyY2VzIHRvIGRpc2NhcmQgKEFMTCwgUExBTlMsIFNFUVVFTkNFUywgVEVNUCkKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":609,"slug":"grant","name":"grant","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"privileges","type":[{"name":"TablePrivilege","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema\\Grant","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"GrantOnStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema\\Grant","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIEdSQU5UIHByaXZpbGVnZXMgYnVpbGRlci4KICoKICogRXhhbXBsZTogZ3JhbnQoVGFibGVQcml2aWxlZ2U6OlNFTEVDVCktPm9uVGFibGUoJ3VzZXJzJyktPnRvKCdhcHBfdXNlcicpCiAqIFByb2R1Y2VzOiBHUkFOVCBTRUxFQ1QgT04gdXNlcnMgVE8gYXBwX3VzZXIKICoKICogRXhhbXBsZTogZ3JhbnQoVGFibGVQcml2aWxlZ2U6OkFMTCktPm9uQWxsVGFibGVzSW5TY2hlbWEoJ3B1YmxpYycpLT50bygnYWRtaW4nKQogKiBQcm9kdWNlczogR1JBTlQgQUxMIE9OIEFMTCBUQUJMRVMgSU4gU0NIRU1BIHB1YmxpYyBUTyBhZG1pbgogKgogKiBAcGFyYW0gc3RyaW5nfFRhYmxlUHJpdmlsZWdlIC4uLiRwcml2aWxlZ2VzIFRoZSBwcml2aWxlZ2VzIHRvIGdyYW50CiAqCiAqIEByZXR1cm4gR3JhbnRPblN0ZXAgQnVpbGRlciBmb3IgZ3JhbnQgb3B0aW9ucwogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":628,"slug":"grant-role","name":"grant_role","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"roles","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"GrantRoleToStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema\\Grant","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIEdSQU5UIHJvbGUgYnVpbGRlci4KICoKICogRXhhbXBsZTogZ3JhbnRfcm9sZSgnYWRtaW4nKS0+dG8oJ3VzZXIxJykKICogUHJvZHVjZXM6IEdSQU5UIGFkbWluIFRPIHVzZXIxCiAqCiAqIEV4YW1wbGU6IGdyYW50X3JvbGUoJ2FkbWluJywgJ2RldmVsb3BlcicpLT50bygndXNlcjEnKS0+d2l0aEFkbWluT3B0aW9uKCkKICogUHJvZHVjZXM6IEdSQU5UIGFkbWluLCBkZXZlbG9wZXIgVE8gdXNlcjEgV0lUSCBBRE1JTiBPUFRJT04KICoKICogQHBhcmFtIHN0cmluZyAuLi4kcm9sZXMgVGhlIHJvbGVzIHRvIGdyYW50CiAqCiAqIEByZXR1cm4gR3JhbnRSb2xlVG9TdGVwIEJ1aWxkZXIgZm9yIGdyYW50IHJvbGUgb3B0aW9ucwogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":647,"slug":"revoke","name":"revoke","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"privileges","type":[{"name":"TablePrivilege","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema\\Grant","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"RevokeOnStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema\\Grant","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFJFVk9LRSBwcml2aWxlZ2VzIGJ1aWxkZXIuCiAqCiAqIEV4YW1wbGU6IHJldm9rZShUYWJsZVByaXZpbGVnZTo6U0VMRUNUKS0+b25UYWJsZSgndXNlcnMnKS0+ZnJvbSgnYXBwX3VzZXInKQogKiBQcm9kdWNlczogUkVWT0tFIFNFTEVDVCBPTiB1c2VycyBGUk9NIGFwcF91c2VyCiAqCiAqIEV4YW1wbGU6IHJldm9rZShUYWJsZVByaXZpbGVnZTo6QUxMKS0+b25UYWJsZSgndXNlcnMnKS0+ZnJvbSgnYXBwX3VzZXInKS0+Y2FzY2FkZSgpCiAqIFByb2R1Y2VzOiBSRVZPS0UgQUxMIE9OIHVzZXJzIEZST00gYXBwX3VzZXIgQ0FTQ0FERQogKgogKiBAcGFyYW0gc3RyaW5nfFRhYmxlUHJpdmlsZWdlIC4uLiRwcml2aWxlZ2VzIFRoZSBwcml2aWxlZ2VzIHRvIHJldm9rZQogKgogKiBAcmV0dXJuIFJldm9rZU9uU3RlcCBCdWlsZGVyIGZvciByZXZva2Ugb3B0aW9ucwogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":666,"slug":"revoke-role","name":"revoke_role","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"roles","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"RevokeRoleFromStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema\\Grant","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFJFVk9LRSByb2xlIGJ1aWxkZXIuCiAqCiAqIEV4YW1wbGU6IHJldm9rZV9yb2xlKCdhZG1pbicpLT5mcm9tKCd1c2VyMScpCiAqIFByb2R1Y2VzOiBSRVZPS0UgYWRtaW4gRlJPTSB1c2VyMQogKgogKiBFeGFtcGxlOiByZXZva2Vfcm9sZSgnYWRtaW4nKS0+ZnJvbSgndXNlcjEnKS0+Y2FzY2FkZSgpCiAqIFByb2R1Y2VzOiBSRVZPS0UgYWRtaW4gRlJPTSB1c2VyMSBDQVNDQURFCiAqCiAqIEBwYXJhbSBzdHJpbmcgLi4uJHJvbGVzIFRoZSByb2xlcyB0byByZXZva2UKICoKICogQHJldHVybiBSZXZva2VSb2xlRnJvbVN0ZXAgQnVpbGRlciBmb3IgcmV2b2tlIHJvbGUgb3B0aW9ucwogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":682,"slug":"set-role","name":"set_role","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"role","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"SetRoleFinalStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema\\Session","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFNFVCBST0xFIGJ1aWxkZXIuCiAqCiAqIEV4YW1wbGU6IHNldF9yb2xlKCdhZG1pbicpCiAqIFByb2R1Y2VzOiBTRVQgUk9MRSBhZG1pbgogKgogKiBAcGFyYW0gc3RyaW5nICRyb2xlIFRoZSByb2xlIHRvIHNldAogKgogKiBAcmV0dXJuIFNldFJvbGVGaW5hbFN0ZXAgQnVpbGRlciBmb3Igc2V0IHJvbGUKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":696,"slug":"reset-role","name":"reset_role","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ResetRoleFinalStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema\\Session","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFJFU0VUIFJPTEUgYnVpbGRlci4KICoKICogRXhhbXBsZTogcmVzZXRfcm9sZSgpCiAqIFByb2R1Y2VzOiBSRVNFVCBST0xFCiAqCiAqIEByZXR1cm4gUmVzZXRSb2xlRmluYWxTdGVwIEJ1aWxkZXIgZm9yIHJlc2V0IHJvbGUKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":712,"slug":"reassign-owned","name":"reassign_owned","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"roles","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"ReassignOwnedToStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema\\Ownership","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFJFQVNTSUdOIE9XTkVEIGJ1aWxkZXIuCiAqCiAqIEV4YW1wbGU6IHJlYXNzaWduX293bmVkKCdvbGRfcm9sZScpLT50bygnbmV3X3JvbGUnKQogKiBQcm9kdWNlczogUkVBU1NJR04gT1dORUQgQlkgb2xkX3JvbGUgVE8gbmV3X3JvbGUKICoKICogQHBhcmFtIHN0cmluZyAuLi4kcm9sZXMgVGhlIHJvbGVzIHdob3NlIG93bmVkIG9iamVjdHMgc2hvdWxkIGJlIHJlYXNzaWduZWQKICoKICogQHJldHVybiBSZWFzc2lnbk93bmVkVG9TdGVwIEJ1aWxkZXIgZm9yIHJlYXNzaWduIG93bmVkIG9wdGlvbnMKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":731,"slug":"drop-owned","name":"drop_owned","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"roles","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"DropOwnedFinalStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema\\Ownership","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIERST1AgT1dORUQgYnVpbGRlci4KICoKICogRXhhbXBsZTogZHJvcF9vd25lZCgncm9sZTEnKQogKiBQcm9kdWNlczogRFJPUCBPV05FRCBCWSByb2xlMQogKgogKiBFeGFtcGxlOiBkcm9wX293bmVkKCdyb2xlMScsICdyb2xlMicpLT5jYXNjYWRlKCkKICogUHJvZHVjZXM6IERST1AgT1dORUQgQlkgcm9sZTEsIHJvbGUyIENBU0NBREUKICoKICogQHBhcmFtIHN0cmluZyAuLi4kcm9sZXMgVGhlIHJvbGVzIHdob3NlIG93bmVkIG9iamVjdHMgc2hvdWxkIGJlIGRyb3BwZWQKICoKICogQHJldHVybiBEcm9wT3duZWRGaW5hbFN0ZXAgQnVpbGRlciBmb3IgZHJvcCBvd25lZCBvcHRpb25zCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":749,"slug":"func-arg","name":"func_arg","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"type","type":[{"name":"ColumnType","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"FunctionArgument","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZXMgYSBuZXcgZnVuY3Rpb24gYXJndW1lbnQgZm9yIHVzZSBpbiBmdW5jdGlvbi9wcm9jZWR1cmUgZGVmaW5pdGlvbnMuCiAqCiAqIEV4YW1wbGU6IGZ1bmNfYXJnKGNvbHVtbl90eXBlX2ludGVnZXIoKSkKICogRXhhbXBsZTogZnVuY19hcmcoY29sdW1uX3R5cGVfdGV4dCgpKS0+bmFtZWQoJ3VzZXJuYW1lJykKICogRXhhbXBsZTogZnVuY19hcmcoY29sdW1uX3R5cGVfaW50ZWdlcigpKS0+bmFtZWQoJ2NvdW50JyktPmRlZmF1bHQoJzAnKQogKiBFeGFtcGxlOiBmdW5jX2FyZyhjb2x1bW5fdHlwZV90ZXh0KCkpLT5vdXQoKQogKgogKiBAcGFyYW0gQ29sdW1uVHlwZSAkdHlwZSBUaGUgUG9zdGdyZVNRTCBkYXRhIHR5cGUgZm9yIHRoZSBhcmd1bWVudAogKgogKiBAcmV0dXJuIEZ1bmN0aW9uQXJndW1lbnQgQnVpbGRlciBmb3IgZnVuY3Rpb24gYXJndW1lbnQgb3B0aW9ucwogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":768,"slug":"call","name":"call","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"procedure","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"CallFinalStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZXMgYSBDQUxMIHN0YXRlbWVudCBidWlsZGVyIGZvciBpbnZva2luZyBhIHByb2NlZHVyZS4KICoKICogRXhhbXBsZTogY2FsbCgndXBkYXRlX3N0YXRzJyktPndpdGgoMTIzKQogKiBQcm9kdWNlczogQ0FMTCB1cGRhdGVfc3RhdHMoMTIzKQogKgogKiBFeGFtcGxlOiBjYWxsKCdwcm9jZXNzX2RhdGEnKS0+d2l0aCgndGVzdCcsIDQyLCB0cnVlKQogKiBQcm9kdWNlczogQ0FMTCBwcm9jZXNzX2RhdGEoJ3Rlc3QnLCA0MiwgdHJ1ZSkKICoKICogQHBhcmFtIHN0cmluZyAkcHJvY2VkdXJlIFRoZSBuYW1lIG9mIHRoZSBwcm9jZWR1cmUgdG8gY2FsbAogKgogKiBAcmV0dXJuIENhbGxGaW5hbFN0ZXAgQnVpbGRlciBmb3IgY2FsbCBzdGF0ZW1lbnQgb3B0aW9ucwogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":787,"slug":"do-block","name":"do_block","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"code","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"DoFinalStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZXMgYSBETyBzdGF0ZW1lbnQgYnVpbGRlciBmb3IgZXhlY3V0aW5nIGFuIGFub255bW91cyBjb2RlIGJsb2NrLgogKgogKiBFeGFtcGxlOiBkb19ibG9jaygnQkVHSU4gUkFJU0UgTk9USUNFICQkSGVsbG8gV29ybGQkJDsgRU5EOycpCiAqIFByb2R1Y2VzOiBETyAkJCBCRUdJTiBSQUlTRSBOT1RJQ0UgJCRIZWxsbyBXb3JsZCQkOyBFTkQ7ICQkIExBTkdVQUdFIHBscGdzcWwKICoKICogRXhhbXBsZTogZG9fYmxvY2soJ1NFTEVDVCAxJyktPmxhbmd1YWdlKCdzcWwnKQogKiBQcm9kdWNlczogRE8gJCQgU0VMRUNUIDEgJCQgTEFOR1VBR0Ugc3FsCiAqCiAqIEBwYXJhbSBzdHJpbmcgJGNvZGUgVGhlIGFub255bW91cyBjb2RlIGJsb2NrIHRvIGV4ZWN1dGUKICoKICogQHJldHVybiBEb0ZpbmFsU3RlcCBCdWlsZGVyIGZvciBETyBzdGF0ZW1lbnQgb3B0aW9ucwogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":807,"slug":"type-attr","name":"type_attr","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"type","type":[{"name":"ColumnType","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"TypeAttribute","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema\\Type","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZXMgYSB0eXBlIGF0dHJpYnV0ZSBmb3IgY29tcG9zaXRlIHR5cGVzLgogKgogKiBFeGFtcGxlOiB0eXBlX2F0dHIoJ25hbWUnLCBjb2x1bW5fdHlwZV90ZXh0KCkpCiAqIFByb2R1Y2VzOiBuYW1lIHRleHQKICoKICogRXhhbXBsZTogdHlwZV9hdHRyKCdkZXNjcmlwdGlvbicsIGNvbHVtbl90eXBlX3RleHQoKSktPmNvbGxhdGUoJ2VuX1VTJykKICogUHJvZHVjZXM6IGRlc2NyaXB0aW9uIHRleHQgQ09MTEFURSAiZW5fVVMiCiAqCiAqIEBwYXJhbSBzdHJpbmcgJG5hbWUgVGhlIGF0dHJpYnV0ZSBuYW1lCiAqIEBwYXJhbSBDb2x1bW5UeXBlICR0eXBlIFRoZSBhdHRyaWJ1dGUgdHlwZQogKgogKiBAcmV0dXJuIFR5cGVBdHRyaWJ1dGUgVHlwZSBhdHRyaWJ1dGUgdmFsdWUgb2JqZWN0CiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":816,"slug":"column-type-integer","name":"column_type_integer","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ColumnType","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBpbnRlZ2VyIGRhdGEgdHlwZSAoUG9zdGdyZVNRTCBpbnQ0KS4KICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":825,"slug":"column-type-smallint","name":"column_type_smallint","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ColumnType","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIHNtYWxsaW50IGRhdGEgdHlwZSAoUG9zdGdyZVNRTCBpbnQyKS4KICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":834,"slug":"column-type-bigint","name":"column_type_bigint","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ColumnType","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIGJpZ2ludCBkYXRhIHR5cGUgKFBvc3RncmVTUUwgaW50OCkuCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":843,"slug":"column-type-boolean","name":"column_type_boolean","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ColumnType","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIGJvb2xlYW4gZGF0YSB0eXBlLgogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":852,"slug":"column-type-text","name":"column_type_text","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ColumnType","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIHRleHQgZGF0YSB0eXBlLgogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":861,"slug":"column-type-varchar","name":"column_type_varchar","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"length","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ColumnType","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIHZhcmNoYXIgZGF0YSB0eXBlIHdpdGggbGVuZ3RoIGNvbnN0cmFpbnQuCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":870,"slug":"column-type-char","name":"column_type_char","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"length","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ColumnType","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIGNoYXIgZGF0YSB0eXBlIHdpdGggbGVuZ3RoIGNvbnN0cmFpbnQuCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":879,"slug":"column-type-numeric","name":"column_type_numeric","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"precision","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"scale","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"ColumnType","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIG51bWVyaWMgZGF0YSB0eXBlIHdpdGggb3B0aW9uYWwgcHJlY2lzaW9uIGFuZCBzY2FsZS4KICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":888,"slug":"column-type-decimal","name":"column_type_decimal","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"precision","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"scale","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"ColumnType","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIGRlY2ltYWwgZGF0YSB0eXBlIHdpdGggb3B0aW9uYWwgcHJlY2lzaW9uIGFuZCBzY2FsZS4KICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":897,"slug":"column-type-real","name":"column_type_real","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ColumnType","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIHJlYWwgZGF0YSB0eXBlIChQb3N0Z3JlU1FMIGZsb2F0NCkuCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":906,"slug":"column-type-double-precision","name":"column_type_double_precision","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ColumnType","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIGRvdWJsZSBwcmVjaXNpb24gZGF0YSB0eXBlIChQb3N0Z3JlU1FMIGZsb2F0OCkuCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":915,"slug":"column-type-date","name":"column_type_date","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ColumnType","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIGRhdGUgZGF0YSB0eXBlLgogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":924,"slug":"column-type-time","name":"column_type_time","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"precision","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"ColumnType","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIHRpbWUgZGF0YSB0eXBlIHdpdGggb3B0aW9uYWwgcHJlY2lzaW9uLgogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":933,"slug":"column-type-timestamp","name":"column_type_timestamp","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"precision","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"ColumnType","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIHRpbWVzdGFtcCBkYXRhIHR5cGUgd2l0aCBvcHRpb25hbCBwcmVjaXNpb24uCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":942,"slug":"column-type-timestamptz","name":"column_type_timestamptz","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"precision","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"ColumnType","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIHRpbWVzdGFtcCB3aXRoIHRpbWUgem9uZSBkYXRhIHR5cGUgd2l0aCBvcHRpb25hbCBwcmVjaXNpb24uCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":951,"slug":"column-type-interval","name":"column_type_interval","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ColumnType","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBpbnRlcnZhbCBkYXRhIHR5cGUuCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":960,"slug":"column-type-uuid","name":"column_type_uuid","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ColumnType","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFVVSUQgZGF0YSB0eXBlLgogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":969,"slug":"column-type-json","name":"column_type_json","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ColumnType","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIEpTT04gZGF0YSB0eXBlLgogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":978,"slug":"column-type-jsonb","name":"column_type_jsonb","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ColumnType","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIEpTT05CIGRhdGEgdHlwZS4KICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":987,"slug":"column-type-bytea","name":"column_type_bytea","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ColumnType","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIGJ5dGVhIGRhdGEgdHlwZS4KICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":996,"slug":"column-type-xml","name":"column_type_xml","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ColumnType","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBYTUwgZGF0YSB0eXBlLgogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1005,"slug":"column-type-inet","name":"column_type_inet","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ColumnType","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBpbmV0IGRhdGEgdHlwZS4KICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1014,"slug":"column-type-cidr","name":"column_type_cidr","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ColumnType","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIGNpZHIgZGF0YSB0eXBlLgogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1023,"slug":"column-type-macaddr","name":"column_type_macaddr","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ColumnType","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIG1hY2FkZHIgZGF0YSB0eXBlLgogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1032,"slug":"column-type-serial","name":"column_type_serial","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ColumnType","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIHNlcmlhbCBkYXRhIHR5cGUuCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1041,"slug":"column-type-smallserial","name":"column_type_smallserial","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ColumnType","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIHNtYWxsc2VyaWFsIGRhdGEgdHlwZS4KICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1050,"slug":"column-type-bigserial","name":"column_type_bigserial","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ColumnType","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIGJpZ3NlcmlhbCBkYXRhIHR5cGUuCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1059,"slug":"column-type-array","name":"column_type_array","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"elementType","type":[{"name":"ColumnType","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ColumnType","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBhcnJheSBkYXRhIHR5cGUgZnJvbSBhbiBlbGVtZW50IHR5cGUuCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1071,"slug":"column-type-custom","name":"column_type_custom","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"typeName","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"schema","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"ColumnType","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIGN1c3RvbSBkYXRhIHR5cGUuCiAqCiAqIEBwYXJhbSBzdHJpbmcgJHR5cGVOYW1lIFR5cGUgbmFtZQogKiBAcGFyYW0gbnVsbHxzdHJpbmcgJHNjaGVtYSBPcHRpb25hbCBzY2hlbWEgbmFtZQogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1084,"slug":"column-type-from-string","name":"column_type_from_string","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"typeName","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ColumnType","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIFBhcnNlIGEgUG9zdGdyZVNRTCB0eXBlIHN0cmluZyBpbnRvIGEgQ29sdW1uVHlwZS4KICoKICogSGFuZGxlcyBhbGwgUG9zdGdyZVNRTCB0eXBlIHN5bnRheCBpbmNsdWRpbmcgcHJlY2lzaW9uLCBhcnJheXMsIGFuZCBzY2hlbWEtcXVhbGlmaWVkIHR5cGVzLgogKgogKiBAcGFyYW0gc3RyaW5nICR0eXBlTmFtZSBQb3N0Z3JlU1FMIHR5cGUgc3RyaW5nIChlLmcuLCAnaW50ZWdlcicsICdjaGFyYWN0ZXIgdmFyeWluZygyNTUpJywgJ3RleHRbXScpCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1092,"slug":"value-type-text","name":"value_type_text","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1098,"slug":"value-type-varchar","name":"value_type_varchar","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1104,"slug":"value-type-char","name":"value_type_char","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1110,"slug":"value-type-bpchar","name":"value_type_bpchar","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1116,"slug":"value-type-int2","name":"value_type_int2","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1122,"slug":"value-type-smallint","name":"value_type_smallint","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1128,"slug":"value-type-int4","name":"value_type_int4","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1134,"slug":"value-type-integer","name":"value_type_integer","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1140,"slug":"value-type-int8","name":"value_type_int8","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1146,"slug":"value-type-bigint","name":"value_type_bigint","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1152,"slug":"value-type-float4","name":"value_type_float4","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1158,"slug":"value-type-real","name":"value_type_real","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1164,"slug":"value-type-float8","name":"value_type_float8","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1170,"slug":"value-type-double","name":"value_type_double","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1176,"slug":"value-type-numeric","name":"value_type_numeric","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1182,"slug":"value-type-money","name":"value_type_money","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1188,"slug":"value-type-bool","name":"value_type_bool","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1194,"slug":"value-type-boolean","name":"value_type_boolean","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1200,"slug":"value-type-bytea","name":"value_type_bytea","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1206,"slug":"value-type-bit","name":"value_type_bit","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1212,"slug":"value-type-varbit","name":"value_type_varbit","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1218,"slug":"value-type-date","name":"value_type_date","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1224,"slug":"value-type-time","name":"value_type_time","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1230,"slug":"value-type-timetz","name":"value_type_timetz","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1236,"slug":"value-type-timestamp","name":"value_type_timestamp","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1242,"slug":"value-type-timestamptz","name":"value_type_timestamptz","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1248,"slug":"value-type-interval","name":"value_type_interval","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1254,"slug":"value-type-json","name":"value_type_json","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1260,"slug":"value-type-jsonb","name":"value_type_jsonb","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1266,"slug":"value-type-uuid","name":"value_type_uuid","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1272,"slug":"value-type-inet","name":"value_type_inet","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1278,"slug":"value-type-cidr","name":"value_type_cidr","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1284,"slug":"value-type-macaddr","name":"value_type_macaddr","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1290,"slug":"value-type-macaddr8","name":"value_type_macaddr8","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1296,"slug":"value-type-xml","name":"value_type_xml","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1302,"slug":"value-type-oid","name":"value_type_oid","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1308,"slug":"value-type-text-array","name":"value_type_text_array","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1314,"slug":"value-type-varchar-array","name":"value_type_varchar_array","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1320,"slug":"value-type-int2-array","name":"value_type_int2_array","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1326,"slug":"value-type-int4-array","name":"value_type_int4_array","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1332,"slug":"value-type-int8-array","name":"value_type_int8_array","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1338,"slug":"value-type-float4-array","name":"value_type_float4_array","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1344,"slug":"value-type-float8-array","name":"value_type_float8_array","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1350,"slug":"value-type-bool-array","name":"value_type_bool_array","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1356,"slug":"value-type-uuid-array","name":"value_type_uuid_array","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1362,"slug":"value-type-json-array","name":"value_type_json_array","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1368,"slug":"value-type-jsonb-array","name":"value_type_jsonb_array","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1384,"slug":"schema","name":"schema","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"tables","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"sequences","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"views","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"materializedViews","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"functions","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"procedures","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"domains","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"extensions","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"}],"return_type":[{"name":"Schema","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBsaXN0PFNjaGVtYVRhYmxlPiAkdGFibGVzCiAqIEBwYXJhbSBsaXN0PFNjaGVtYVNlcXVlbmNlPiAkc2VxdWVuY2VzCiAqIEBwYXJhbSBsaXN0PFNjaGVtYVZpZXc+ICR2aWV3cwogKiBAcGFyYW0gbGlzdDxTY2hlbWFNYXRlcmlhbGl6ZWRWaWV3PiAkbWF0ZXJpYWxpemVkVmlld3MKICogQHBhcmFtIGxpc3Q8U2NoZW1hRnVuY3Rpb24+ICRmdW5jdGlvbnMKICogQHBhcmFtIGxpc3Q8U2NoZW1hUHJvY2VkdXJlPiAkcHJvY2VkdXJlcwogKiBAcGFyYW0gbGlzdDxTY2hlbWFEb21haW4+ICRkb21haW5zCiAqIEBwYXJhbSBsaXN0PFNjaGVtYUV4dGVuc2lvbj4gJGV4dGVuc2lvbnMKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1420,"slug":"schema-table","name":"schema_table","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"columns","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"primaryKey","type":[{"name":"PrimaryKey","namespace":"Flow\\PostgreSql\\Schema\\Constraint","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"indexes","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"foreignKeys","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"uniqueConstraints","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"checkConstraints","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"excludeConstraints","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"triggers","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"schema","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'public'"},{"name":"unlogged","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"partitionStrategy","type":[{"name":"PartitionStrategy","namespace":"Flow\\PostgreSql\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"partitionColumns","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"inherits","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"tablespace","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Table","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBub24tZW1wdHktbGlzdDxTY2hlbWFDb2x1bW4+ICRjb2x1bW5zCiAqIEBwYXJhbSBsaXN0PFNjaGVtYUluZGV4PiAkaW5kZXhlcwogKiBAcGFyYW0gbGlzdDxTY2hlbWFGb3JlaWduS2V5PiAkZm9yZWlnbktleXMKICogQHBhcmFtIGxpc3Q8U2NoZW1hVW5pcXVlQ29uc3RyYWludD4gJHVuaXF1ZUNvbnN0cmFpbnRzCiAqIEBwYXJhbSBsaXN0PFNjaGVtYUNoZWNrQ29uc3RyYWludD4gJGNoZWNrQ29uc3RyYWludHMKICogQHBhcmFtIGxpc3Q8U2NoZW1hRXhjbHVkZUNvbnN0cmFpbnQ+ICRleGNsdWRlQ29uc3RyYWludHMKICogQHBhcmFtIGxpc3Q8U2NoZW1hVHJpZ2dlcj4gJHRyaWdnZXJzCiAqIEBwYXJhbSBsaXN0PHN0cmluZz4gJHBhcnRpdGlvbkNvbHVtbnMKICogQHBhcmFtIGxpc3Q8c3RyaW5nPiAkaW5oZXJpdHMKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1465,"slug":"schema-table-options","name":"schema_table_options","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"foreignKeys","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"checkConstraints","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"excludeConstraints","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"triggers","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"unlogged","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"partitionStrategy","type":[{"name":"PartitionStrategy","namespace":"Flow\\PostgreSql\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"partitionColumns","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"inherits","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"tablespace","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"TableOptions","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBsaXN0PFNjaGVtYUZvcmVpZ25LZXk+ICRmb3JlaWduS2V5cwogKiBAcGFyYW0gbGlzdDxTY2hlbWFDaGVja0NvbnN0cmFpbnQ+ICRjaGVja0NvbnN0cmFpbnRzCiAqIEBwYXJhbSBsaXN0PFNjaGVtYUV4Y2x1ZGVDb25zdHJhaW50PiAkZXhjbHVkZUNvbnN0cmFpbnRzCiAqIEBwYXJhbSBsaXN0PFNjaGVtYVRyaWdnZXI+ICR0cmlnZ2VycwogKiBAcGFyYW0gbGlzdDxzdHJpbmc+ICRwYXJ0aXRpb25Db2x1bW5zCiAqIEBwYXJhbSBsaXN0PHN0cmluZz4gJGluaGVyaXRzCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1490,"slug":"schema-column","name":"schema_column","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"type","type":[{"name":"ColumnType","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"default","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"isIdentity","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"identityGeneration","type":[{"name":"IdentityGeneration","namespace":"Flow\\PostgreSql\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"isGenerated","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"generationExpression","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"ordinalPosition","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Column","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1515,"slug":"schema-column-integer","name":"schema_column_integer","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"default","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Column","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1524,"slug":"schema-column-smallint","name":"schema_column_smallint","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"default","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Column","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1533,"slug":"schema-column-bigint","name":"schema_column_bigint","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"default","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Column","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1542,"slug":"schema-column-serial","name":"schema_column_serial","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Column","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1548,"slug":"schema-column-small-serial","name":"schema_column_small_serial","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Column","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1554,"slug":"schema-column-big-serial","name":"schema_column_big_serial","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Column","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1560,"slug":"schema-column-boolean","name":"schema_column_boolean","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"default","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Column","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1569,"slug":"schema-column-text","name":"schema_column_text","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"default","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Column","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1578,"slug":"schema-column-varchar","name":"schema_column_varchar","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"length","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"default","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Column","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1588,"slug":"schema-column-char","name":"schema_column_char","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"length","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"default","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Column","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1598,"slug":"schema-column-numeric","name":"schema_column_numeric","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"precision","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"scale","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"default","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Column","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1609,"slug":"schema-column-real","name":"schema_column_real","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"default","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Column","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1618,"slug":"schema-column-double-precision","name":"schema_column_double_precision","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"default","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Column","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1627,"slug":"schema-column-date","name":"schema_column_date","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"default","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Column","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1636,"slug":"schema-column-time","name":"schema_column_time","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"precision","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"default","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Column","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1646,"slug":"schema-column-timestamp","name":"schema_column_timestamp","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"precision","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"default","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Column","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1656,"slug":"schema-column-timestamp-tz","name":"schema_column_timestamp_tz","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"precision","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"default","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Column","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1666,"slug":"schema-column-interval","name":"schema_column_interval","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"default","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Column","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1675,"slug":"schema-column-uuid","name":"schema_column_uuid","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"default","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Column","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1684,"slug":"schema-column-json","name":"schema_column_json","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"default","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Column","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1693,"slug":"schema-column-jsonb","name":"schema_column_jsonb","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"default","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Column","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1702,"slug":"schema-column-bytea","name":"schema_column_bytea","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"default","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Column","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1711,"slug":"schema-column-inet","name":"schema_column_inet","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"default","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Column","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1720,"slug":"schema-column-cidr","name":"schema_column_cidr","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"default","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Column","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1729,"slug":"schema-column-macaddr","name":"schema_column_macaddr","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"default","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Column","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1741,"slug":"schema-primary-key","name":"schema_primary_key","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"columns","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"PrimaryKey","namespace":"Flow\\PostgreSql\\Schema\\Constraint","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBub24tZW1wdHktbGlzdDxzdHJpbmc+ICRjb2x1bW5zCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1751,"slug":"schema-foreign-key","name":"schema_foreign_key","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"columns","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"referenceTable","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"referenceColumns","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"referenceSchema","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'public'"},{"name":"onUpdate","type":[{"name":"ReferentialAction","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\PostgreSql\\QueryBuilder\\Schema\\ReferentialAction::..."},{"name":"onDelete","type":[{"name":"ReferentialAction","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\PostgreSql\\QueryBuilder\\Schema\\ReferentialAction::..."},{"name":"deferrable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"initiallyDeferred","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"ForeignKey","namespace":"Flow\\PostgreSql\\Schema\\Constraint","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBub24tZW1wdHktbGlzdDxzdHJpbmc+ICRjb2x1bW5zCiAqIEBwYXJhbSBub24tZW1wdHktbGlzdDxzdHJpbmc+ICRyZWZlcmVuY2VDb2x1bW5zCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1779,"slug":"schema-unique","name":"schema_unique","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"columns","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"nullsNotDistinct","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"UniqueConstraint","namespace":"Flow\\PostgreSql\\Schema\\Constraint","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBub24tZW1wdHktbGlzdDxzdHJpbmc+ICRjb2x1bW5zCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1785,"slug":"schema-check","name":"schema_check","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"expression","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"noInherit","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"CheckConstraint","namespace":"Flow\\PostgreSql\\Schema\\Constraint","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1791,"slug":"schema-exclude","name":"schema_exclude","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"definition","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"ExcludeConstraint","namespace":"Flow\\PostgreSql\\Schema\\Constraint","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1800,"slug":"schema-index","name":"schema_index","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"columns","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"unique","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"method","type":[{"name":"IndexMethod","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\PostgreSql\\Schema\\IndexMethod::..."},{"name":"primary","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"predicate","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Index","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBub24tZW1wdHktbGlzdDxzdHJpbmc+ICRjb2x1bW5zCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1812,"slug":"schema-sequence","name":"schema_sequence","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"dataType","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'bigint'"},{"name":"startValue","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"1"},{"name":"minValue","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"1"},{"name":"maxValue","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"incrementBy","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"1"},{"name":"cycle","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"cacheValue","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"1"},{"name":"ownedByTable","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"ownedByColumn","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Sequence","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1839,"slug":"schema-view","name":"schema_view","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"definition","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"isUpdatable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"View","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1848,"slug":"schema-materialized-view","name":"schema_materialized_view","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"definition","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"indexes","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"}],"return_type":[{"name":"MaterializedView","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBsaXN0PFNjaGVtYUluZGV4PiAkaW5kZXhlcwogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1857,"slug":"schema-function","name":"schema_function","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"returnType","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"argumentTypes","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"language","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'sql'"},{"name":"definition","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"isStrict","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"volatility","type":[{"name":"FunctionVolatility","namespace":"Flow\\PostgreSql\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Func","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBsaXN0PHN0cmluZz4gJGFyZ3VtZW50VHlwZXMKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1873,"slug":"schema-procedure","name":"schema_procedure","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"argumentTypes","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"language","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'sql'"},{"name":"definition","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Procedure","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBsaXN0PHN0cmluZz4gJGFyZ3VtZW50VHlwZXMKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1886,"slug":"schema-trigger","name":"schema_trigger","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"tableName","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"timing","type":[{"name":"TriggerTiming","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"events","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"functionName","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"forEachRow","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"whenCondition","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Trigger","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBub24tZW1wdHktbGlzdDxUcmlnZ2VyRXZlbnQ+ICRldmVudHMKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1902,"slug":"schema-domain","name":"schema_domain","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"baseType","type":[{"name":"ColumnType","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"default","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"checkConstraints","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"}],"return_type":[{"name":"Domain","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBsaXN0PFNjaGVtYUNoZWNrQ29uc3RyYWludD4gJGNoZWNrQ29uc3RyYWludHMKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1913,"slug":"schema-extension","name":"schema_extension","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"version","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Extension","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1922,"slug":"client-catalog-provider","name":"client_catalog_provider","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"client","type":[{"name":"Client","namespace":"Flow\\PostgreSql\\Client","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"schemaNames","type":[{"name":"array","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"exclusionPolicy","type":[{"name":"ExclusionPolicy","namespace":"Flow\\PostgreSql\\Schema\\Exclusion","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"CatalogProvider","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSA\/bGlzdDxzdHJpbmc+ICRzY2hlbWFOYW1lcwogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1931,"slug":"exclude-any","name":"exclude_any","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"policies","type":[{"name":"ExclusionPolicy","namespace":"Flow\\PostgreSql\\Schema\\Exclusion","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"ExclusionPolicy","namespace":"Flow\\PostgreSql\\Schema\\Exclusion","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1937,"slug":"exclude-exact","name":"exclude_exact","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ExclusionPolicy","namespace":"Flow\\PostgreSql\\Schema\\Exclusion","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1943,"slug":"exclude-starts-with","name":"exclude_starts_with","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"prefix","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ExclusionPolicy","namespace":"Flow\\PostgreSql\\Schema\\Exclusion","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1949,"slug":"exclude-ends-with","name":"exclude_ends_with","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"suffix","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ExclusionPolicy","namespace":"Flow\\PostgreSql\\Schema\\Exclusion","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1955,"slug":"exclude-pattern","name":"exclude_pattern","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"pattern","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ExclusionPolicy","namespace":"Flow\\PostgreSql\\Schema\\Exclusion","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1961,"slug":"exclude-schema","name":"exclude_schema","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"schema","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ExclusionPolicy","namespace":"Flow\\PostgreSql\\Schema\\Exclusion","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1967,"slug":"exclude-scoped","name":"exclude_scoped","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"policy","type":[{"name":"ExclusionPolicy","namespace":"Flow\\PostgreSql\\Schema\\Exclusion","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"type","type":[{"name":"SchemaObjectType","namespace":"Flow\\PostgreSql\\Schema\\Exclusion","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"schema","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"ExclusionPolicy","namespace":"Flow\\PostgreSql\\Schema\\Exclusion","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1976,"slug":"manual-catalog-provider","name":"manual_catalog_provider","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"catalog","type":[{"name":"Catalog","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"CatalogProvider","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1982,"slug":"chain-catalog-provider","name":"chain_catalog_provider","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"providers","type":[{"name":"CatalogProvider","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"ChainCatalogProvider","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1991,"slug":"catalog-comparator","name":"catalog_comparator","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"renameStrategy","type":[{"name":"RenameStrategy","namespace":"Flow\\PostgreSql\\Schema\\Diff","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"viewDependencyResolver","type":[{"name":"ViewDependencyResolver","namespace":"Flow\\PostgreSql\\Schema\\Diff","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"tableOrderStrategy","type":[{"name":"ExecutionOrderStrategy","namespace":"Flow\\PostgreSql\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"dropIfExists","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"CatalogComparator","namespace":"Flow\\PostgreSql\\Schema\\Diff","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBudWxsfEV4ZWN1dGlvbk9yZGVyU3RyYXRlZ3k8XEZsb3dcUG9zdGdyZVNxbFxTY2hlbWFcVGFibGU+ICR0YWJsZU9yZGVyU3RyYXRlZ3kKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":2006,"slug":"ast-view-dependency-resolver","name":"ast_view_dependency_resolver","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"AstViewDependencyResolver","namespace":"Flow\\PostgreSql\\Schema\\Diff","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":2012,"slug":"noop-view-dependency-resolver","name":"noop_view_dependency_resolver","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"NoopViewDependencyResolver","namespace":"Flow\\PostgreSql\\Schema\\Diff","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":2018,"slug":"foreign-key-dependency-order","name":"foreign_key_dependency_order","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ForeignKeyDependencyOrder","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":2027,"slug":"no-execution-order","name":"no_execution_order","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"NoExecutionOrder","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEByZXR1cm4gTm9FeGVjdXRpb25PcmRlcjxtaXhlZD4KICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":2033,"slug":"view-dependency-order","name":"view_dependency_order","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ViewDependencyOrder","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":2039,"slug":"materialized-view-dependency-order","name":"materialized_view_dependency_order","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"MaterializedViewDependencyOrder","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":117,"slug":"select","name":"select","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"expressions","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"SelectBuilder","namespace":"Flow\\PostgreSql\\QueryBuilder\\Select","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIG5ldyBTRUxFQ1QgcXVlcnkgYnVpbGRlci4KICoKICogQHBhcmFtIEV4cHJlc3Npb258c3RyaW5nIC4uLiRleHByZXNzaW9ucyBDb2x1bW5zIHRvIHNlbGVjdC4gSWYgZW1wdHksIHJldHVybnMgU2VsZWN0U2VsZWN0U3RlcC4KICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":134,"slug":"parsed-select","name":"parsed_select","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"sql","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ParsedSelect","namespace":"Flow\\PostgreSql\\QueryBuilder\\Select","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFNlbGVjdEZpbmFsU3RlcCBmcm9tIGEgcmF3IFNRTCBTRUxFQ1Qgc3RyaW5nLgogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":146,"slug":"with","name":"with","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"ctes","type":[{"name":"CTE","namespace":"Flow\\PostgreSql\\QueryBuilder\\Clause","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"WithBuilder","namespace":"Flow\\PostgreSql\\QueryBuilder\\With","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFdJVEggY2xhdXNlIGJ1aWxkZXIgZm9yIENURXMuCiAqCiAqIEV4YW1wbGU6IHdpdGgoY3RlKCd1c2VycycsICRzdWJxdWVyeSkpLT5zZWxlY3Qoc3RhcigpKS0+ZnJvbSh0YWJsZSgndXNlcnMnKSkKICogRXhhbXBsZTogd2l0aChjdGUoJ2EnLCAkcTEpLCBjdGUoJ2InLCAkcTIpKS0+cmVjdXJzaXZlKCktPnNlbGVjdCguLi4pLT5mcm9tKHRhYmxlKCdhJykpCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":159,"slug":"insert","name":"insert","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"InsertIntoStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Insert","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIG5ldyBJTlNFUlQgcXVlcnkgYnVpbGRlci4KICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":175,"slug":"bulk-insert","name":"bulk_insert","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"table","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"columns","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"rowCount","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"BulkInsert","namespace":"Flow\\PostgreSql\\QueryBuilder\\Insert","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBvcHRpbWl6ZWQgYnVsayBJTlNFUlQgcXVlcnkgZm9yIGhpZ2gtcGVyZm9ybWFuY2UgbXVsdGktcm93IGluc2VydHMuCiAqCiAqIFVubGlrZSBpbnNlcnQoKSB3aGljaCB1c2VzIGltbXV0YWJsZSBidWlsZGVyIHBhdHRlcm5zIChPKG7CsikgZm9yIG4gcm93cyksCiAqIHRoaXMgZnVuY3Rpb24gZ2VuZXJhdGVzIFNRTCBkaXJlY3RseSB1c2luZyBzdHJpbmcgb3BlcmF0aW9ucyAoTyhuKSBjb21wbGV4aXR5KS4KICoKICogQHBhcmFtIHN0cmluZyAkdGFibGUgVGFibGUgbmFtZQogKiBAcGFyYW0gbGlzdDxzdHJpbmc+ICRjb2x1bW5zIENvbHVtbiBuYW1lcwogKiBAcGFyYW0gaW50ICRyb3dDb3VudCBOdW1iZXIgb2Ygcm93cyB0byBpbnNlcnQKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":184,"slug":"update","name":"update","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"UpdateTableStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Update","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIG5ldyBVUERBVEUgcXVlcnkgYnVpbGRlci4KICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":193,"slug":"delete","name":"delete","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"DeleteFromStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Delete","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIG5ldyBERUxFVEUgcXVlcnkgYnVpbGRlci4KICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":205,"slug":"merge","name":"merge","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"table","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"alias","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"MergeUsingStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Merge","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIG5ldyBNRVJHRSBxdWVyeSBidWlsZGVyLgogKgogKiBAcGFyYW0gc3RyaW5nICR0YWJsZSBUYXJnZXQgdGFibGUgbmFtZQogKiBAcGFyYW0gbnVsbHxzdHJpbmcgJGFsaWFzIE9wdGlvbmFsIHRhYmxlIGFsaWFzCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":219,"slug":"copy","name":"copy","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"CopyFactory","namespace":"Flow\\PostgreSql\\QueryBuilder\\Factory","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIG5ldyBDT1BZIHF1ZXJ5IGJ1aWxkZXIgZm9yIGRhdGEgaW1wb3J0L2V4cG9ydC4KICoKICogVXNhZ2U6CiAqICAgY29weSgpLT5mcm9tKCd1c2VycycpLT5maWxlKCcvdG1wL3VzZXJzLmNzdicpLT5mb3JtYXQoQ29weUZvcm1hdDo6Q1NWKQogKiAgIGNvcHkoKS0+dG8oJ3VzZXJzJyktPmZpbGUoJy90bXAvdXNlcnMuY3N2JyktPmZvcm1hdChDb3B5Rm9ybWF0OjpDU1YpCiAqICAgY29weSgpLT50b1F1ZXJ5KHNlbGVjdCguLi4pKS0+ZmlsZSgnL3RtcC9kYXRhLmNzdicpCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":231,"slug":"listen","name":"listen","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"channel","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ListenFinalStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Listen","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIExJU1RFTiBzdGF0ZW1lbnQgdG8gc3Vic2NyaWJlIHRoZSBjdXJyZW50IHNlc3Npb24gdG8gYSBub3RpZmljYXRpb24gY2hhbm5lbC4KICoKICogVXNhZ2U6CiAqICAgbGlzdGVuKCdteV9jaGFubmVsJyktPnRvU3FsKCkgIC8vIExJU1RFTiBteV9jaGFubmVsCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":243,"slug":"unlisten","name":"unlisten","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"channel","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"UnlistenFinalStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Unlisten","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBVTkxJU1RFTiBzdGF0ZW1lbnQgdG8gdW5zdWJzY3JpYmUgdGhlIGN1cnJlbnQgc2Vzc2lvbiBmcm9tIGEgbm90aWZpY2F0aW9uIGNoYW5uZWwuCiAqCiAqIFVzYWdlOgogKiAgIHVubGlzdGVuKCdteV9jaGFubmVsJyktPnRvU3FsKCkgIC8vIFVOTElTVEVOIG15X2NoYW5uZWwKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":256,"slug":"notify","name":"notify","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"channel","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"NotifyFinalStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Notify","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIE5PVElGWSBzdGF0ZW1lbnQgdG8gc2VuZCBhIG5vdGlmaWNhdGlvbiBvbiBhIGNoYW5uZWwsIG9wdGlvbmFsbHkgd2l0aCBhIHBheWxvYWQuCiAqCiAqIFVzYWdlOgogKiAgIG5vdGlmeSgnbXlfY2hhbm5lbCcpLT50b1NxbCgpICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTk9USUZZIG15X2NoYW5uZWwKICogICBub3RpZnkoJ215X2NoYW5uZWwnKS0+d2l0aFBheWxvYWQoJ2hlbGxvJyktPnRvU3FsKCkgICAgIC8vIE5PVElGWSBteV9jaGFubmVsLCAnaGVsbG8nCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":277,"slug":"col","name":"col","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"column","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"table","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"schema","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Column","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIGNvbHVtbiByZWZlcmVuY2UgZXhwcmVzc2lvbi4KICoKICogQ2FuIGJlIHVzZWQgaW4gdHdvIG1vZGVzOgogKiAtIFBhcnNlIG1vZGU6IGNvbCgndXNlcnMuaWQnKSBvciBjb2woJ3NjaGVtYS50YWJsZS5jb2x1bW4nKSAtIHBhcnNlcyBkb3Qtc2VwYXJhdGVkIHN0cmluZwogKiAtIEV4cGxpY2l0IG1vZGU6IGNvbCgnaWQnLCAndXNlcnMnKSBvciBjb2woJ2lkJywgJ3VzZXJzJywgJ3NjaGVtYScpIC0gc2VwYXJhdGUgYXJndW1lbnRzCiAqCiAqIFdoZW4gJHRhYmxlIG9yICRzY2hlbWEgaXMgcHJvdmlkZWQsICRjb2x1bW4gbXVzdCBiZSBhIHBsYWluIGNvbHVtbiBuYW1lIChubyBkb3RzKS4KICoKICogQHBhcmFtIHN0cmluZyAkY29sdW1uIENvbHVtbiBuYW1lLCBvciBkb3Qtc2VwYXJhdGVkIHBhdGggbGlrZSAidGFibGUuY29sdW1uIiBvciAic2NoZW1hLnRhYmxlLmNvbHVtbiIKICogQHBhcmFtIG51bGx8c3RyaW5nICR0YWJsZSBUYWJsZSBuYW1lIChvcHRpb25hbCwgdHJpZ2dlcnMgZXhwbGljaXQgbW9kZSkKICogQHBhcmFtIG51bGx8c3RyaW5nICRzY2hlbWEgU2NoZW1hIG5hbWUgKG9wdGlvbmFsLCByZXF1aXJlcyAkdGFibGUpCiAqCiAqIEB0aHJvd3MgSW52YWxpZEV4cHJlc3Npb25FeGNlcHRpb24gd2hlbiAkc2NoZW1hIGlzIHByb3ZpZGVkIHdpdGhvdXQgJHRhYmxlLCBvciB3aGVuICRjb2x1bW4gY29udGFpbnMgZG90cyBpbiBleHBsaWNpdCBtb2RlCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":304,"slug":"star","name":"star","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"table","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Star","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFNFTEVDVCAqIGV4cHJlc3Npb24uCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":320,"slug":"literal","name":"literal","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"value","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Literal","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIGxpdGVyYWwgdmFsdWUgZm9yIHVzZSBpbiBxdWVyaWVzLgogKgogKiBBdXRvbWF0aWNhbGx5IGRldGVjdHMgdGhlIHR5cGUgYW5kIGNyZWF0ZXMgdGhlIGFwcHJvcHJpYXRlIGxpdGVyYWw6CiAqIC0gbGl0ZXJhbCgnaGVsbG8nKSBjcmVhdGVzIGEgc3RyaW5nIGxpdGVyYWwKICogLSBsaXRlcmFsKDQyKSBjcmVhdGVzIGFuIGludGVnZXIgbGl0ZXJhbAogKiAtIGxpdGVyYWwoMy4xNCkgY3JlYXRlcyBhIGZsb2F0IGxpdGVyYWwKICogLSBsaXRlcmFsKHRydWUpIGNyZWF0ZXMgYSBib29sZWFuIGxpdGVyYWwKICogLSBsaXRlcmFsKG51bGwpIGNyZWF0ZXMgYSBOVUxMIGxpdGVyYWwKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":335,"slug":"param","name":"param","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"position","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Parameter","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIHBvc2l0aW9uYWwgcGFyYW1ldGVyICgkMSwgJDIsIGV0Yy4pLgogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":344,"slug":"parameters","name":"parameters","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"count","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"startAt","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"1"}],"return_type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEByZXR1cm4gbGlzdDxQYXJhbWV0ZXI+CiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":370,"slug":"func","name":"func","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"args","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"}],"return_type":[{"name":"FunctionCall","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIGZ1bmN0aW9uIGNhbGwgZXhwcmVzc2lvbi4KICoKICogQHBhcmFtIHN0cmluZyAkbmFtZSBGdW5jdGlvbiBuYW1lIChjYW4gaW5jbHVkZSBzY2hlbWEgbGlrZSAicGdfY2F0YWxvZy5ub3ciKQogKiBAcGFyYW0gbGlzdDxFeHByZXNzaW9ufHN0cmluZz4gJGFyZ3MgRnVuY3Rpb24gYXJndW1lbnRzCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":404,"slug":"agg","name":"agg","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"args","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"distinct","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"AggregateCall","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBhZ2dyZWdhdGUgZnVuY3Rpb24gY2FsbCAoQ09VTlQsIFNVTSwgQVZHLCBldGMuKS4KICoKICogQHBhcmFtIHN0cmluZyAkbmFtZSBBZ2dyZWdhdGUgZnVuY3Rpb24gbmFtZQogKiBAcGFyYW0gbGlzdDxFeHByZXNzaW9ufHN0cmluZz4gJGFyZ3MgRnVuY3Rpb24gYXJndW1lbnRzCiAqIEBwYXJhbSBib29sICRkaXN0aW5jdCBVc2UgRElTVElOQ1QgbW9kaWZpZXIKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":418,"slug":"agg-count","name":"agg_count","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"expr","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"distinct","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"AggregateCall","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBDT1VOVCgqKSBhZ2dyZWdhdGUuCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":431,"slug":"count-all","name":"count_all","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"AggregateCall","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBDT1VOVCgqKSBhZ2dyZWdhdGUuCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":440,"slug":"agg-sum","name":"agg_sum","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"expr","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"distinct","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"AggregateCall","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBTVU0gYWdncmVnYXRlLgogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":449,"slug":"agg-avg","name":"agg_avg","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"expr","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"distinct","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"AggregateCall","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBBVkcgYWdncmVnYXRlLgogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":458,"slug":"agg-min","name":"agg_min","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"expr","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"AggregateCall","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBNSU4gYWdncmVnYXRlLgogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":467,"slug":"agg-max","name":"agg_max","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"expr","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"AggregateCall","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBNQVggYWdncmVnYXRlLgogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":478,"slug":"coalesce","name":"coalesce","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"expressions","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"Coalesce","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIENPQUxFU0NFIGV4cHJlc3Npb24uCiAqCiAqIEBwYXJhbSBFeHByZXNzaW9ufHN0cmluZyAuLi4kZXhwcmVzc2lvbnMgRXhwcmVzc2lvbnMgdG8gY29hbGVzY2UKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":489,"slug":"nullif","name":"nullif","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"expr1","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"expr2","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"NullIf","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIE5VTExJRiBleHByZXNzaW9uLgogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":503,"slug":"greatest","name":"greatest","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"expressions","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"Greatest","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIEdSRUFURVNUIGV4cHJlc3Npb24uCiAqCiAqIEBwYXJhbSBFeHByZXNzaW9ufHN0cmluZyAuLi4kZXhwcmVzc2lvbnMgRXhwcmVzc2lvbnMgdG8gY29tcGFyZQogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":516,"slug":"least","name":"least","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"expressions","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"Least","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIExFQVNUIGV4cHJlc3Npb24uCiAqCiAqIEBwYXJhbSBFeHByZXNzaW9ufHN0cmluZyAuLi4kZXhwcmVzc2lvbnMgRXhwcmVzc2lvbnMgdG8gY29tcGFyZQogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":530,"slug":"cast","name":"cast","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"expr","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"dataType","type":[{"name":"ColumnType","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"TypeCast","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIHR5cGUgY2FzdCBleHByZXNzaW9uLgogKgogKiBAcGFyYW0gRXhwcmVzc2lvbnxzdHJpbmcgJGV4cHIgRXhwcmVzc2lvbiB0byBjYXN0CiAqIEBwYXJhbSBDb2x1bW5UeXBlICRkYXRhVHlwZSBUYXJnZXQgZGF0YSB0eXBlICh1c2UgY29sdW1uX3R5cGVfKiBmdW5jdGlvbnMpCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":542,"slug":"collate","name":"collate","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"expr","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"collation","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Collate","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIENPTExBVEUgZXhwcmVzc2lvbi4KICoKICogQHBhcmFtIEV4cHJlc3Npb258c3RyaW5nICRleHByIEV4cHJlc3Npb24gdG8gY29sbGF0ZQogKiBAcGFyYW0gc3RyaW5nICRjb2xsYXRpb24gQ29sbGF0aW9uIG5hbWUgYXMgd3JpdHRlbiBpbiBTUUw6ICdDJywgJyJkZV9ERSInLCAncGdfY2F0YWxvZy4iQyInCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":557,"slug":"current-timestamp","name":"current_timestamp","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"SQLValueFunctionExpression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIFNRTCBzdGFuZGFyZCBDVVJSRU5UX1RJTUVTVEFNUCBmdW5jdGlvbi4KICoKICogUmV0dXJucyB0aGUgY3VycmVudCBkYXRlIGFuZCB0aW1lIChhdCB0aGUgc3RhcnQgb2YgdGhlIHRyYW5zYWN0aW9uKS4KICogVXNlZnVsIGFzIGEgY29sdW1uIGRlZmF1bHQgdmFsdWUgb3IgaW4gU0VMRUNUIHF1ZXJpZXMuCiAqCiAqIEV4YW1wbGU6IGNvbHVtbignY3JlYXRlZF9hdCcsIGNvbHVtbl90eXBlX3RpbWVzdGFtcCgpKS0+ZGVmYXVsdChjdXJyZW50X3RpbWVzdGFtcCgpKQogKiBFeGFtcGxlOiBzZWxlY3QoKS0+c2VsZWN0KGN1cnJlbnRfdGltZXN0YW1wKCktPmFzKCdub3cnKSkKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":572,"slug":"current-date","name":"current_date","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"SQLValueFunctionExpression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIFNRTCBzdGFuZGFyZCBDVVJSRU5UX0RBVEUgZnVuY3Rpb24uCiAqCiAqIFJldHVybnMgdGhlIGN1cnJlbnQgZGF0ZSAoYXQgdGhlIHN0YXJ0IG9mIHRoZSB0cmFuc2FjdGlvbikuCiAqIFVzZWZ1bCBhcyBhIGNvbHVtbiBkZWZhdWx0IHZhbHVlIG9yIGluIFNFTEVDVCBxdWVyaWVzLgogKgogKiBFeGFtcGxlOiBjb2x1bW4oJ2JpcnRoX2RhdGUnLCBjb2x1bW5fdHlwZV9kYXRlKCkpLT5kZWZhdWx0KGN1cnJlbnRfZGF0ZSgpKQogKiBFeGFtcGxlOiBzZWxlY3QoKS0+c2VsZWN0KGN1cnJlbnRfZGF0ZSgpLT5hcygndG9kYXknKSkKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":587,"slug":"current-time","name":"current_time","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"SQLValueFunctionExpression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIFNRTCBzdGFuZGFyZCBDVVJSRU5UX1RJTUUgZnVuY3Rpb24uCiAqCiAqIFJldHVybnMgdGhlIGN1cnJlbnQgdGltZSAoYXQgdGhlIHN0YXJ0IG9mIHRoZSB0cmFuc2FjdGlvbikuCiAqIFVzZWZ1bCBhcyBhIGNvbHVtbiBkZWZhdWx0IHZhbHVlIG9yIGluIFNFTEVDVCBxdWVyaWVzLgogKgogKiBFeGFtcGxlOiBjb2x1bW4oJ3N0YXJ0X3RpbWUnLCBjb2x1bW5fdHlwZV90aW1lKCkpLT5kZWZhdWx0KGN1cnJlbnRfdGltZSgpKQogKiBFeGFtcGxlOiBzZWxlY3QoKS0+c2VsZWN0KGN1cnJlbnRfdGltZSgpLT5hcygnbm93X3RpbWUnKSkKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":600,"slug":"case-when","name":"case_when","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"whenClauses","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"elseResult","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"operand","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"CaseExpression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIENBU0UgZXhwcmVzc2lvbi4KICoKICogQHBhcmFtIG5vbi1lbXB0eS1saXN0PFdoZW5DbGF1c2U+ICR3aGVuQ2xhdXNlcyBXSEVOIGNsYXVzZXMKICogQHBhcmFtIG51bGx8RXhwcmVzc2lvbnxzdHJpbmcgJGVsc2VSZXN1bHQgRUxTRSByZXN1bHQgKG9wdGlvbmFsKQogKiBAcGFyYW0gbnVsbHxFeHByZXNzaW9ufHN0cmluZyAkb3BlcmFuZCBDQVNFIG9wZXJhbmQgZm9yIHNpbXBsZSBDQVNFIChvcHRpb25hbCkKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":616,"slug":"when","name":"when","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"condition","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"result","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"WhenClause","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFdIRU4gY2xhdXNlIGZvciBDQVNFIGV4cHJlc3Npb24uCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":628,"slug":"sub-select","name":"sub_select","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"query","type":[{"name":"SelectFinalStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Select","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Subquery","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIHN1YnF1ZXJ5IGV4cHJlc3Npb24uCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":642,"slug":"array-expr","name":"array_expr","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"elements","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ArrayExpression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBhcnJheSBleHByZXNzaW9uLgogKgogKiBAcGFyYW0gbGlzdDxFeHByZXNzaW9ufHN0cmluZz4gJGVsZW1lbnRzIEFycmF5IGVsZW1lbnRzCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":655,"slug":"row-expr","name":"row_expr","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"elements","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"RowExpression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIHJvdyBleHByZXNzaW9uLgogKgogKiBAcGFyYW0gbGlzdDxFeHByZXNzaW9ufHN0cmluZz4gJGVsZW1lbnRzIFJvdyBlbGVtZW50cwogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":666,"slug":"binary-expr","name":"binary_expr","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"left","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"operator","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"right","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"BinaryExpression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIGJpbmFyeSBleHByZXNzaW9uIChsZWZ0IG9wIHJpZ2h0KS4KICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":684,"slug":"window-func","name":"window_func","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"args","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"partitionBy","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"orderBy","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"}],"return_type":[{"name":"WindowFunction","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIHdpbmRvdyBmdW5jdGlvbi4KICoKICogQHBhcmFtIHN0cmluZyAkbmFtZSBGdW5jdGlvbiBuYW1lCiAqIEBwYXJhbSBsaXN0PEV4cHJlc3Npb258c3RyaW5nPiAkYXJncyBGdW5jdGlvbiBhcmd1bWVudHMKICogQHBhcmFtIGxpc3Q8RXhwcmVzc2lvbnxzdHJpbmc+ICRwYXJ0aXRpb25CeSBQQVJUSVRJT04gQlkgZXhwcmVzc2lvbnMKICogQHBhcmFtIGxpc3Q8T3JkZXJCeT4gJG9yZGVyQnkgT1JERVIgQlkgaXRlbXMKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":705,"slug":"concat","name":"concat","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"expressions","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"BinaryExpression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENvbmNhdGVuYXRlIGV4cHJlc3Npb25zIHdpdGggdGhlIHx8IG9wZXJhdG9yLgogKgogKiBFeGFtcGxlOiBjb25jYXQoY29sKCdzY2hlbWEnKSwgbGl0ZXJhbCgnLicpLCBjb2woJ3RhYmxlJykpCiAqIFByb2R1Y2VzOiBzY2hlbWEgfHwgJy4nIHx8IHRhYmxlCiAqCiAqIEBwYXJhbSBFeHByZXNzaW9ufHN0cmluZyAuLi4kZXhwcmVzc2lvbnMgQXQgbGVhc3QgMiBleHByZXNzaW9ucyB0byBjb25jYXRlbmF0ZQogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":735,"slug":"table","name":"table","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"schema","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Table","namespace":"Flow\\PostgreSql\\QueryBuilder\\Table","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIHRhYmxlIHJlZmVyZW5jZS4KICoKICogU3VwcG9ydHMgZG90IG5vdGF0aW9uIGZvciBzY2hlbWEtcXVhbGlmaWVkIG5hbWVzOiAicHVibGljLnVzZXJzIiBvciBleHBsaWNpdCBzY2hlbWEgcGFyYW1ldGVyLgogKiBEb3VibGUtcXVvdGVkIGlkZW50aWZpZXJzIHByZXNlcnZlIGRvdHM6ICcibXkudGFibGUiJyBjcmVhdGVzIGEgc2luZ2xlIGlkZW50aWZpZXIuCiAqCiAqIEBwYXJhbSBzdHJpbmcgJG5hbWUgVGFibGUgbmFtZSAobWF5IGluY2x1ZGUgc2NoZW1hIGFzICJzY2hlbWEudGFibGUiKQogKiBAcGFyYW0gbnVsbHxzdHJpbmcgJHNjaGVtYSBTY2hlbWEgbmFtZSAob3B0aW9uYWwsIG92ZXJyaWRlcyBwYXJzZWQgc2NoZW1hKQogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":750,"slug":"derived","name":"derived","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"query","type":[{"name":"SelectFinalStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Select","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"alias","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"DerivedTable","namespace":"Flow\\PostgreSql\\QueryBuilder\\Table","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIGRlcml2ZWQgdGFibGUgKHN1YnF1ZXJ5IGluIEZST00gY2xhdXNlKS4KICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":764,"slug":"lateral","name":"lateral","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"reference","type":[{"name":"TableReference","namespace":"Flow\\PostgreSql\\QueryBuilder\\Table","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Lateral","namespace":"Flow\\PostgreSql\\QueryBuilder\\Table","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIExBVEVSQUwgc3VicXVlcnkuCiAqCiAqIEBwYXJhbSBUYWJsZVJlZmVyZW5jZSAkcmVmZXJlbmNlIFRoZSBzdWJxdWVyeSBvciB0YWJsZSBmdW5jdGlvbiByZWZlcmVuY2UKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":776,"slug":"table-func","name":"table_func","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"function","type":[{"name":"FunctionCall","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"withOrdinality","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"TableFunction","namespace":"Flow\\PostgreSql\\QueryBuilder\\Table","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIHRhYmxlIGZ1bmN0aW9uIHJlZmVyZW5jZS4KICoKICogQHBhcmFtIEZ1bmN0aW9uQ2FsbCAkZnVuY3Rpb24gVGhlIHRhYmxlLXZhbHVlZCBmdW5jdGlvbgogKiBAcGFyYW0gYm9vbCAkd2l0aE9yZGluYWxpdHkgV2hldGhlciB0byBhZGQgV0lUSCBPUkRJTkFMSVRZCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":795,"slug":"values-table","name":"values_table","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"rows","type":[{"name":"RowExpression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"ValuesTable","namespace":"Flow\\PostgreSql\\QueryBuilder\\Table","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFZBTFVFUyBjbGF1c2UgYXMgYSB0YWJsZSByZWZlcmVuY2UuCiAqCiAqIFVzYWdlOgogKiAgIHNlbGVjdCgpLT5mcm9tKAogKiAgICAgICB2YWx1ZXNfdGFibGUoCiAqICAgICAgICAgICByb3dfZXhwcihbbGl0ZXJhbCgxKSwgbGl0ZXJhbCgnQWxpY2UnKV0pLAogKiAgICAgICAgICAgcm93X2V4cHIoW2xpdGVyYWwoMiksIGxpdGVyYWwoJ0JvYicpXSkKICogICAgICAgKS0+YXMoJ3QnLCBbJ2lkJywgJ25hbWUnXSkKICogICApCiAqCiAqIEdlbmVyYXRlczogU0VMRUNUICogRlJPTSAoVkFMVUVTICgxLCAnQWxpY2UnKSwgKDIsICdCb2InKSkgQVMgdChpZCwgbmFtZSkKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":804,"slug":"order-by","name":"order_by","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"expr","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"direction","type":[{"name":"SortDirection","namespace":"Flow\\PostgreSql\\QueryBuilder\\Clause","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\PostgreSql\\QueryBuilder\\Clause\\SortDirection::..."},{"name":"nulls","type":[{"name":"NullsPosition","namespace":"Flow\\PostgreSql\\QueryBuilder\\Clause","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\PostgreSql\\QueryBuilder\\Clause\\NullsPosition::..."}],"return_type":[{"name":"OrderBy","namespace":"Flow\\PostgreSql\\QueryBuilder\\Clause","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBPUkRFUiBCWSBpdGVtLgogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":816,"slug":"asc","name":"asc","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"expr","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nulls","type":[{"name":"NullsPosition","namespace":"Flow\\PostgreSql\\QueryBuilder\\Clause","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\PostgreSql\\QueryBuilder\\Clause\\NullsPosition::..."}],"return_type":[{"name":"OrderBy","namespace":"Flow\\PostgreSql\\QueryBuilder\\Clause","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBPUkRFUiBCWSBpdGVtIHdpdGggQVNDIGRpcmVjdGlvbi4KICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":825,"slug":"desc","name":"desc","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"expr","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nulls","type":[{"name":"NullsPosition","namespace":"Flow\\PostgreSql\\QueryBuilder\\Clause","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\PostgreSql\\QueryBuilder\\Clause\\NullsPosition::..."}],"return_type":[{"name":"OrderBy","namespace":"Flow\\PostgreSql\\QueryBuilder\\Clause","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBPUkRFUiBCWSBpdGVtIHdpdGggREVTQyBkaXJlY3Rpb24uCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":839,"slug":"cte","name":"cte","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"query","type":[{"name":"SelectFinalStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Select","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"columnNames","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"materialization","type":[{"name":"CTEMaterialization","namespace":"Flow\\PostgreSql\\QueryBuilder\\Clause","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\PostgreSql\\QueryBuilder\\Clause\\CTEMaterialization::..."},{"name":"recursive","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"CTE","namespace":"Flow\\PostgreSql\\QueryBuilder\\Clause","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIENURSAoQ29tbW9uIFRhYmxlIEV4cHJlc3Npb24pLgogKgogKiBAcGFyYW0gc3RyaW5nICRuYW1lIENURSBuYW1lCiAqIEBwYXJhbSBTZWxlY3RGaW5hbFN0ZXAgJHF1ZXJ5IENURSBxdWVyeQogKiBAcGFyYW0gYXJyYXk8c3RyaW5nPiAkY29sdW1uTmFtZXMgQ29sdW1uIGFsaWFzZXMgKG9wdGlvbmFsKQogKiBAcGFyYW0gQ1RFTWF0ZXJpYWxpemF0aW9uICRtYXRlcmlhbGl6YXRpb24gTWF0ZXJpYWxpemF0aW9uIGhpbnQKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":861,"slug":"window-def","name":"window_def","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"partitionBy","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"orderBy","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"frame","type":[{"name":"WindowFrame","namespace":"Flow\\PostgreSql\\QueryBuilder\\Clause","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"WindowDefinition","namespace":"Flow\\PostgreSql\\QueryBuilder\\Clause","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIHdpbmRvdyBkZWZpbml0aW9uIGZvciBXSU5ET1cgY2xhdXNlLgogKgogKiBAcGFyYW0gc3RyaW5nICRuYW1lIFdpbmRvdyBuYW1lCiAqIEBwYXJhbSBsaXN0PEV4cHJlc3Npb258c3RyaW5nPiAkcGFydGl0aW9uQnkgUEFSVElUSU9OIEJZIGV4cHJlc3Npb25zCiAqIEBwYXJhbSBsaXN0PE9yZGVyQnk+ICRvcmRlckJ5IE9SREVSIEJZIGl0ZW1zCiAqIEBwYXJhbSBudWxsfFdpbmRvd0ZyYW1lICRmcmFtZSBXaW5kb3cgZnJhbWUgc3BlY2lmaWNhdGlvbgogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":881,"slug":"window-frame","name":"window_frame","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"mode","type":[{"name":"FrameMode","namespace":"Flow\\PostgreSql\\QueryBuilder\\Clause","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"start","type":[{"name":"FrameBound","namespace":"Flow\\PostgreSql\\QueryBuilder\\Clause","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"end","type":[{"name":"FrameBound","namespace":"Flow\\PostgreSql\\QueryBuilder\\Clause","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"exclusion","type":[{"name":"FrameExclusion","namespace":"Flow\\PostgreSql\\QueryBuilder\\Clause","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\PostgreSql\\QueryBuilder\\Clause\\FrameExclusion::..."}],"return_type":[{"name":"WindowFrame","namespace":"Flow\\PostgreSql\\QueryBuilder\\Clause","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIHdpbmRvdyBmcmFtZSBzcGVjaWZpY2F0aW9uLgogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":894,"slug":"frame-current-row","name":"frame_current_row","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"FrameBound","namespace":"Flow\\PostgreSql\\QueryBuilder\\Clause","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIGZyYW1lIGJvdW5kIGZvciBDVVJSRU5UIFJPVy4KICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":903,"slug":"frame-unbounded-preceding","name":"frame_unbounded_preceding","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"FrameBound","namespace":"Flow\\PostgreSql\\QueryBuilder\\Clause","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIGZyYW1lIGJvdW5kIGZvciBVTkJPVU5ERUQgUFJFQ0VESU5HLgogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":912,"slug":"frame-unbounded-following","name":"frame_unbounded_following","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"FrameBound","namespace":"Flow\\PostgreSql\\QueryBuilder\\Clause","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIGZyYW1lIGJvdW5kIGZvciBVTkJPVU5ERUQgRk9MTE9XSU5HLgogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":921,"slug":"frame-preceding","name":"frame_preceding","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"offset","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"FrameBound","namespace":"Flow\\PostgreSql\\QueryBuilder\\Clause","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIGZyYW1lIGJvdW5kIGZvciBOIFBSRUNFRElORy4KICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":930,"slug":"frame-following","name":"frame_following","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"offset","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"FrameBound","namespace":"Flow\\PostgreSql\\QueryBuilder\\Clause","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIGZyYW1lIGJvdW5kIGZvciBOIEZPTExPV0lORy4KICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":943,"slug":"lock-for","name":"lock_for","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"strength","type":[{"name":"LockStrength","namespace":"Flow\\PostgreSql\\QueryBuilder\\Clause","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"tables","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"waitPolicy","type":[{"name":"LockWaitPolicy","namespace":"Flow\\PostgreSql\\QueryBuilder\\Clause","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\PostgreSql\\QueryBuilder\\Clause\\LockWaitPolicy::..."}],"return_type":[{"name":"LockingClause","namespace":"Flow\\PostgreSql\\QueryBuilder\\Clause","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIGxvY2tpbmcgY2xhdXNlIChGT1IgVVBEQVRFLCBGT1IgU0hBUkUsIGV0Yy4pLgogKgogKiBAcGFyYW0gTG9ja1N0cmVuZ3RoICRzdHJlbmd0aCBMb2NrIHN0cmVuZ3RoCiAqIEBwYXJhbSBsaXN0PHN0cmluZz4gJHRhYmxlcyBUYWJsZXMgdG8gbG9jayAoZW1wdHkgZm9yIGFsbCkKICogQHBhcmFtIExvY2tXYWl0UG9saWN5ICR3YWl0UG9saWN5IFdhaXQgcG9saWN5CiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":957,"slug":"for-update","name":"for_update","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"tables","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"}],"return_type":[{"name":"LockingClause","namespace":"Flow\\PostgreSql\\QueryBuilder\\Clause","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIEZPUiBVUERBVEUgbG9ja2luZyBjbGF1c2UuCiAqCiAqIEBwYXJhbSBsaXN0PHN0cmluZz4gJHRhYmxlcyBUYWJsZXMgdG8gbG9jayAoZW1wdHkgZm9yIGFsbCkKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":968,"slug":"for-share","name":"for_share","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"tables","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"}],"return_type":[{"name":"LockingClause","namespace":"Flow\\PostgreSql\\QueryBuilder\\Clause","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIEZPUiBTSEFSRSBsb2NraW5nIGNsYXVzZS4KICoKICogQHBhcmFtIGxpc3Q8c3RyaW5nPiAkdGFibGVzIFRhYmxlcyB0byBsb2NrIChlbXB0eSBmb3IgYWxsKQogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":977,"slug":"on-conflict-nothing","name":"on_conflict_nothing","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"target","type":[{"name":"ConflictTarget","namespace":"Flow\\PostgreSql\\QueryBuilder\\Clause","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"OnConflictClause","namespace":"Flow\\PostgreSql\\QueryBuilder\\Clause","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBPTiBDT05GTElDVCBETyBOT1RISU5HIGNsYXVzZS4KICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":989,"slug":"on-conflict-update","name":"on_conflict_update","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"target","type":[{"name":"ConflictTarget","namespace":"Flow\\PostgreSql\\QueryBuilder\\Clause","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"updates","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"OnConflictClause","namespace":"Flow\\PostgreSql\\QueryBuilder\\Clause","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBPTiBDT05GTElDVCBETyBVUERBVEUgY2xhdXNlLgogKgogKiBAcGFyYW0gQ29uZmxpY3RUYXJnZXQgJHRhcmdldCBDb25mbGljdCB0YXJnZXQgKGNvbHVtbnMgb3IgY29uc3RyYWludCkKICogQHBhcmFtIGFycmF5PHN0cmluZywgRXhwcmVzc2lvbnxzdHJpbmc+ICR1cGRhdGVzIENvbHVtbiB1cGRhdGVzCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":1003,"slug":"conflict-columns","name":"conflict_columns","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"columns","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ConflictTarget","namespace":"Flow\\PostgreSql\\QueryBuilder\\Clause","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIGNvbmZsaWN0IHRhcmdldCBmb3IgT04gQ09ORkxJQ1QgKGNvbHVtbnMpLgogKgogKiBAcGFyYW0gbGlzdDxzdHJpbmc+ICRjb2x1bW5zIENvbHVtbnMgdGhhdCBkZWZpbmUgdW5pcXVlbmVzcwogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":1012,"slug":"conflict-constraint","name":"conflict_constraint","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ConflictTarget","namespace":"Flow\\PostgreSql\\QueryBuilder\\Clause","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIGNvbmZsaWN0IHRhcmdldCBmb3IgT04gQ09ORkxJQ1QgT04gQ09OU1RSQUlOVC4KICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":1023,"slug":"returning","name":"returning","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"expressions","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"ReturningClause","namespace":"Flow\\PostgreSql\\QueryBuilder\\Clause","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFJFVFVSTklORyBjbGF1c2UuCiAqCiAqIEBwYXJhbSBFeHByZXNzaW9ufHN0cmluZyAuLi4kZXhwcmVzc2lvbnMgRXhwcmVzc2lvbnMgdG8gcmV0dXJuCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":1034,"slug":"returning-all","name":"returning_all","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ReturningClause","namespace":"Flow\\PostgreSql\\QueryBuilder\\Clause","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFJFVFVSTklORyAqIGNsYXVzZS4KICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":1046,"slug":"begin","name":"begin","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"BeginOptionsStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Transaction","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIEJFR0lOIHRyYW5zYWN0aW9uIGJ1aWxkZXIuCiAqCiAqIEV4YW1wbGU6IGJlZ2luKCktPmlzb2xhdGlvbkxldmVsKElzb2xhdGlvbkxldmVsOjpTRVJJQUxJWkFCTEUpLT5yZWFkT25seSgpCiAqIFByb2R1Y2VzOiBCRUdJTiBJU09MQVRJT04gTEVWRUwgU0VSSUFMSVpBQkxFIFJFQUQgT05MWQogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":1058,"slug":"commit","name":"commit","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"CommitOptionsStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Transaction","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIENPTU1JVCB0cmFuc2FjdGlvbiBidWlsZGVyLgogKgogKiBFeGFtcGxlOiBjb21taXQoKS0+YW5kQ2hhaW4oKQogKiBQcm9kdWNlczogQ09NTUlUIEFORCBDSEFJTgogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":1070,"slug":"rollback","name":"rollback","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"RollbackOptionsStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Transaction","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFJPTExCQUNLIHRyYW5zYWN0aW9uIGJ1aWxkZXIuCiAqCiAqIEV4YW1wbGU6IHJvbGxiYWNrKCktPnRvU2F2ZXBvaW50KCdteV9zYXZlcG9pbnQnKQogKiBQcm9kdWNlczogUk9MTEJBQ0sgVE8gU0FWRVBPSU5UIG15X3NhdmVwb2ludAogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":1082,"slug":"savepoint","name":"savepoint","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"SavepointFinalStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Transaction","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFNBVkVQT0lOVC4KICoKICogRXhhbXBsZTogc2F2ZXBvaW50KCdteV9zYXZlcG9pbnQnKQogKiBQcm9kdWNlczogU0FWRVBPSU5UIG15X3NhdmVwb2ludAogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":1094,"slug":"release-savepoint","name":"release_savepoint","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"SavepointFinalStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Transaction","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIFJlbGVhc2UgYSBTQVZFUE9JTlQuCiAqCiAqIEV4YW1wbGU6IHJlbGVhc2Vfc2F2ZXBvaW50KCdteV9zYXZlcG9pbnQnKQogKiBQcm9kdWNlczogUkVMRUFTRSBteV9zYXZlcG9pbnQKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":1106,"slug":"set-transaction","name":"set_transaction","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"SetTransactionOptionsStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Transaction","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFNFVCBUUkFOU0FDVElPTiBidWlsZGVyLgogKgogKiBFeGFtcGxlOiBzZXRfdHJhbnNhY3Rpb24oKS0+aXNvbGF0aW9uTGV2ZWwoSXNvbGF0aW9uTGV2ZWw6OlNFUklBTElaQUJMRSktPnJlYWRPbmx5KCkKICogUHJvZHVjZXM6IFNFVCBUUkFOU0FDVElPTiBJU09MQVRJT04gTEVWRUwgU0VSSUFMSVpBQkxFLCBSRUFEIE9OTFkKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":1118,"slug":"set-session-transaction","name":"set_session_transaction","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"SetTransactionOptionsStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Transaction","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFNFVCBTRVNTSU9OIENIQVJBQ1RFUklTVElDUyBBUyBUUkFOU0FDVElPTiBidWlsZGVyLgogKgogKiBFeGFtcGxlOiBzZXRfc2Vzc2lvbl90cmFuc2FjdGlvbigpLT5pc29sYXRpb25MZXZlbChJc29sYXRpb25MZXZlbDo6U0VSSUFMSVpBQkxFKQogKiBQcm9kdWNlczogU0VUIFNFU1NJT04gQ0hBUkFDVEVSSVNUSUNTIEFTIFRSQU5TQUNUSU9OIElTT0xBVElPTiBMRVZFTCBTRVJJQUxJWkFCTEUKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":1130,"slug":"transaction-snapshot","name":"transaction_snapshot","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"snapshotId","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"SetTransactionFinalStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Transaction","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFNFVCBUUkFOU0FDVElPTiBTTkFQU0hPVCBidWlsZGVyLgogKgogKiBFeGFtcGxlOiB0cmFuc2FjdGlvbl9zbmFwc2hvdCgnMDAwMDAwMDMtMDAwMDAwMUEtMScpCiAqIFByb2R1Y2VzOiBTRVQgVFJBTlNBQ1RJT04gU05BUFNIT1QgJzAwMDAwMDAzLTAwMDAwMDFBLTEnCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":1142,"slug":"prepare-transaction","name":"prepare_transaction","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"transactionId","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"PreparedTransactionFinalStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Transaction","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFBSRVBBUkUgVFJBTlNBQ1RJT04gYnVpbGRlci4KICoKICogRXhhbXBsZTogcHJlcGFyZV90cmFuc2FjdGlvbignbXlfdHJhbnNhY3Rpb24nKQogKiBQcm9kdWNlczogUFJFUEFSRSBUUkFOU0FDVElPTiAnbXlfdHJhbnNhY3Rpb24nCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":1154,"slug":"commit-prepared","name":"commit_prepared","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"transactionId","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"PreparedTransactionFinalStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Transaction","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIENPTU1JVCBQUkVQQVJFRCBidWlsZGVyLgogKgogKiBFeGFtcGxlOiBjb21taXRfcHJlcGFyZWQoJ215X3RyYW5zYWN0aW9uJykKICogUHJvZHVjZXM6IENPTU1JVCBQUkVQQVJFRCAnbXlfdHJhbnNhY3Rpb24nCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":1166,"slug":"rollback-prepared","name":"rollback_prepared","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"transactionId","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"PreparedTransactionFinalStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Transaction","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFJPTExCQUNLIFBSRVBBUkVEIGJ1aWxkZXIuCiAqCiAqIEV4YW1wbGU6IHJvbGxiYWNrX3ByZXBhcmVkKCdteV90cmFuc2FjdGlvbicpCiAqIFByb2R1Y2VzOiBST0xMQkFDSyBQUkVQQVJFRCAnbXlfdHJhbnNhY3Rpb24nCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":1189,"slug":"declare-cursor","name":"declare_cursor","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"cursorName","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"query","type":[{"name":"SelectFinalStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Select","is_nullable":false,"is_variadic":false},{"name":"Sql","namespace":"Flow\\PostgreSql\\QueryBuilder","is_nullable":false,"is_variadic":false},{"name":"ParsedQuery","namespace":"Flow\\PostgreSql","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"DeclareCursorOptionsStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Cursor","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIERlY2xhcmUgYSBzZXJ2ZXItc2lkZSBjdXJzb3IgZm9yIGEgcXVlcnkuCiAqCiAqIEN1cnNvcnMgbXVzdCBiZSBkZWNsYXJlZCB3aXRoaW4gYSB0cmFuc2FjdGlvbiBhbmQgcHJvdmlkZSBtZW1vcnktZWZmaWNpZW50CiAqIGl0ZXJhdGlvbiBvdmVyIGxhcmdlIHJlc3VsdCBzZXRzIHZpYSBGRVRDSCBjb21tYW5kcy4KICoKICogRXhhbXBsZSB3aXRoIHF1ZXJ5IGJ1aWxkZXI6CiAqICAgZGVjbGFyZV9jdXJzb3IoJ215X2N1cnNvcicsIHNlbGVjdChzdGFyKCkpLT5mcm9tKHRhYmxlKCd1c2VycycpKSktPm5vU2Nyb2xsKCkKICogICBQcm9kdWNlczogREVDTEFSRSBteV9jdXJzb3IgTk8gU0NST0xMIENVUlNPUiBGT1IgU0VMRUNUICogRlJPTSB1c2VycwogKgogKiBFeGFtcGxlIHdpdGggcmF3IFNRTDoKICogICBkZWNsYXJlX2N1cnNvcignbXlfY3Vyc29yJywgJ1NFTEVDVCAqIEZST00gdXNlcnMgV0hFUkUgYWN0aXZlID0gdHJ1ZScpLT53aXRoSG9sZCgpCiAqICAgUHJvZHVjZXM6IERFQ0xBUkUgbXlfY3Vyc29yIE5PIFNDUk9MTCBDVVJTT1IgV0lUSCBIT0xEIEZPUiBTRUxFQ1QgKiBGUk9NIHVzZXJzIFdIRVJFIGFjdGl2ZSA9IHRydWUKICoKICogQHBhcmFtIHN0cmluZyAkY3Vyc29yTmFtZSBVbmlxdWUgY3Vyc29yIG5hbWUKICogQHBhcmFtIFBhcnNlZFF1ZXJ5fFNlbGVjdEZpbmFsU3RlcHxTcWx8c3RyaW5nICRxdWVyeSBRdWVyeSB0byBpdGVyYXRlIG92ZXIKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":1214,"slug":"fetch","name":"fetch","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"cursorName","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"FetchCursorBuilder","namespace":"Flow\\PostgreSql\\QueryBuilder\\Cursor","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEZldGNoIHJvd3MgZnJvbSBhIGN1cnNvci4KICoKICogRXhhbXBsZTogZmV0Y2goJ215X2N1cnNvcicpLT5mb3J3YXJkKDEwMCkKICogUHJvZHVjZXM6IEZFVENIIEZPUldBUkQgMTAwIG15X2N1cnNvcgogKgogKiBFeGFtcGxlOiBmZXRjaCgnbXlfY3Vyc29yJyktPmFsbCgpCiAqIFByb2R1Y2VzOiBGRVRDSCBBTEwgbXlfY3Vyc29yCiAqCiAqIEBwYXJhbSBzdHJpbmcgJGN1cnNvck5hbWUgQ3Vyc29yIHRvIGZldGNoIGZyb20KICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":1231,"slug":"close-cursor","name":"close_cursor","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"cursorName","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"CloseCursorFinalStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Cursor","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENsb3NlIGEgY3Vyc29yLgogKgogKiBFeGFtcGxlOiBjbG9zZV9jdXJzb3IoJ215X2N1cnNvcicpCiAqIFByb2R1Y2VzOiBDTE9TRSBteV9jdXJzb3IKICoKICogRXhhbXBsZTogY2xvc2VfY3Vyc29yKCkgLSBjbG9zZXMgYWxsIGN1cnNvcnMKICogUHJvZHVjZXM6IENMT1NFIEFMTAogKgogKiBAcGFyYW0gbnVsbHxzdHJpbmcgJGN1cnNvck5hbWUgQ3Vyc29yIHRvIGNsb3NlLCBvciBudWxsIHRvIGNsb3NlIGFsbAogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/condition.php","start_line_in_file":42,"slug":"eq","name":"eq","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"left","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"right","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Comparison","namespace":"Flow\\PostgreSql\\QueryBuilder\\Condition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBlcXVhbGl0eSBjb21wYXJpc29uIChjb2x1bW4gPSB2YWx1ZSkuCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/condition.php","start_line_in_file":55,"slug":"ne","name":"ne","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"left","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"right","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Comparison","namespace":"Flow\\PostgreSql\\QueryBuilder\\Condition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIG5vdC1lcXVhbCBjb21wYXJpc29uIChjb2x1bW4gIT0gdmFsdWUpLgogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/condition.php","start_line_in_file":68,"slug":"lt","name":"lt","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"left","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"right","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Comparison","namespace":"Flow\\PostgreSql\\QueryBuilder\\Condition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIGxlc3MtdGhhbiBjb21wYXJpc29uIChjb2x1bW4gPCB2YWx1ZSkuCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/condition.php","start_line_in_file":81,"slug":"le","name":"le","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"left","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"right","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Comparison","namespace":"Flow\\PostgreSql\\QueryBuilder\\Condition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIGxlc3MtdGhhbi1vci1lcXVhbCBjb21wYXJpc29uIChjb2x1bW4gPD0gdmFsdWUpLgogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/condition.php","start_line_in_file":94,"slug":"gt","name":"gt","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"left","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"right","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Comparison","namespace":"Flow\\PostgreSql\\QueryBuilder\\Condition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIGdyZWF0ZXItdGhhbiBjb21wYXJpc29uIChjb2x1bW4gPiB2YWx1ZSkuCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/condition.php","start_line_in_file":107,"slug":"ge","name":"ge","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"left","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"right","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Comparison","namespace":"Flow\\PostgreSql\\QueryBuilder\\Condition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIGdyZWF0ZXItdGhhbi1vci1lcXVhbCBjb21wYXJpc29uIChjb2x1bW4gPj0gdmFsdWUpLgogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/condition.php","start_line_in_file":120,"slug":"between","name":"between","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"expr","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"low","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"high","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"not","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"Between","namespace":"Flow\\PostgreSql\\QueryBuilder\\Condition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIEJFVFdFRU4gY29uZGl0aW9uLgogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/condition.php","start_line_in_file":139,"slug":"in","name":"in_","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"expr","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"values","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"In","namespace":"Flow\\PostgreSql\\QueryBuilder\\Condition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBJTiBjb25kaXRpb24uCiAqCiAqIEBwYXJhbSBFeHByZXNzaW9ufHN0cmluZyAkZXhwciBFeHByZXNzaW9uIHRvIGNoZWNrCiAqIEBwYXJhbSBsaXN0PEV4cHJlc3Npb24+ICR2YWx1ZXMgTGlzdCBvZiB2YWx1ZXMgKG11c3QgYmUgbm9uLWVtcHR5KQogKgogKiBAdGhyb3dzIFxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24gd2hlbiB2YWx1ZXMgYXJyYXkgaXMgZW1wdHkKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/condition.php","start_line_in_file":156,"slug":"is-null","name":"is_null","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"expr","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"not","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"IsNull","namespace":"Flow\\PostgreSql\\QueryBuilder\\Condition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBJUyBOVUxMIGNvbmRpdGlvbi4KICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/condition.php","start_line_in_file":165,"slug":"like","name":"like","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"expr","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"pattern","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"caseInsensitive","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"negated","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"Like","namespace":"Flow\\PostgreSql\\QueryBuilder\\Condition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIExJS0UgY29uZGl0aW9uLgogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/condition.php","start_line_in_file":183,"slug":"similar-to","name":"similar_to","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"expr","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"pattern","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"SimilarTo","namespace":"Flow\\PostgreSql\\QueryBuilder\\Condition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFNJTUlMQVIgVE8gY29uZGl0aW9uLgogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/condition.php","start_line_in_file":195,"slug":"distinct-from","name":"distinct_from","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"left","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"right","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"not","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"IsDistinctFrom","namespace":"Flow\\PostgreSql\\QueryBuilder\\Condition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBJUyBESVNUSU5DVCBGUk9NIGNvbmRpdGlvbi4KICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/condition.php","start_line_in_file":208,"slug":"exists","name":"exists","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"subquery","type":[{"name":"SelectFinalStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Select","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Exists","namespace":"Flow\\PostgreSql\\QueryBuilder\\Condition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBFWElTVFMgY29uZGl0aW9uLgogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/condition.php","start_line_in_file":223,"slug":"any","name":"any_","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"left","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"operator","type":[{"name":"ComparisonOperator","namespace":"Flow\\PostgreSql\\QueryBuilder\\Condition","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"arrayOrSubquery","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"SelectFinalStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Select","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Any","namespace":"Flow\\PostgreSql\\QueryBuilder\\Condition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBBTlkgY29uZGl0aW9uIHdpdGggYSBzdWJxdWVyeSBvciBhcnJheSBleHByZXNzaW9uLgogKgogKiBFeGFtcGxlOiBhbnlfKGNvbCgnaWQnKSwgQ29tcGFyaXNvbk9wZXJhdG9yOjpFUSwgc2VsZWN0KGNvbCgndXNlcl9pZCcpKS0+ZnJvbSh0YWJsZSgnb3JkZXJzJykpKQogKiBFeGFtcGxlOiBhbnlfKGNvbCgnYXR0bnVtJywgJ2EnKSwgQ29tcGFyaXNvbk9wZXJhdG9yOjpFUSwgY29sKCdjb25rZXknLCAnY29uJykpCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/condition.php","start_line_in_file":243,"slug":"all","name":"all_","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"left","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"operator","type":[{"name":"ComparisonOperator","namespace":"Flow\\PostgreSql\\QueryBuilder\\Condition","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"arrayOrSubquery","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"SelectFinalStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Select","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"All","namespace":"Flow\\PostgreSql\\QueryBuilder\\Condition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBBTEwgY29uZGl0aW9uIHdpdGggYSBzdWJxdWVyeSBvciBhcnJheSBleHByZXNzaW9uLgogKgogKiBFeGFtcGxlOiBhbGxfKGNvbCgnaWQnKSwgQ29tcGFyaXNvbk9wZXJhdG9yOjpFUSwgc2VsZWN0KGNvbCgndXNlcl9pZCcpKS0+ZnJvbSh0YWJsZSgnb3JkZXJzJykpKQogKiBFeGFtcGxlOiBhbGxfKGNvbCgndmFsdWUnKSwgQ29tcGFyaXNvbk9wZXJhdG9yOjpHVCwgY29sKCd0aHJlc2hvbGRzJykpCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/condition.php","start_line_in_file":262,"slug":"is-true","name":"is_true","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"expr","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"BooleanCondition","namespace":"Flow\\PostgreSql\\QueryBuilder\\Condition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIFdyYXAgYW4gZXhwcmVzc2lvbiBhcyBhIGJvb2xlYW4gY29uZGl0aW9uIGZvciB1c2UgaW4gV0hFUkUvSEFWSU5HL0pPSU4gT04uCiAqCiAqIEV4YW1wbGU6IGlzX3RydWUoY29sKCdpc19hY3RpdmUnKSkg4oCUIHVzZXMgYSBib29sZWFuIGNvbHVtbiBpbiBXSEVSRSBjbGF1c2UuCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/condition.php","start_line_in_file":274,"slug":"not-like","name":"not_like","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"expr","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"pattern","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"caseInsensitive","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"Like","namespace":"Flow\\PostgreSql\\QueryBuilder\\Condition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIE5PVCBMSUtFIGNvbmRpdGlvbi4KICoKICogRXhhbXBsZTogbm90X2xpa2UoY29sKCduYW1lJyksIGxpdGVyYWwoJ3BnXyUnKSkKICogUHJvZHVjZXM6IG5hbWUgTk9UIExJS0UgJ3BnXyUnCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/condition.php","start_line_in_file":302,"slug":"conditions","name":"conditions","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ConditionBuilder","namespace":"Flow\\PostgreSql\\QueryBuilder\\Condition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIGNvbmRpdGlvbiBidWlsZGVyIGZvciBmbHVlbnQgY29uZGl0aW9uIGNvbXBvc2l0aW9uLgogKgogKiBUaGlzIGJ1aWxkZXIgYWxsb3dzIGluY3JlbWVudGFsIGNvbmRpdGlvbiBidWlsZGluZyB3aXRoIGEgZmx1ZW50IEFQSToKICoKICogYGBgcGhwCiAqICRidWlsZGVyID0gY29uZGl0aW9ucygpOwogKgogKiBpZiAoJGhhc0ZpbHRlcikgewogKiAgICAgJGJ1aWxkZXIgPSAkYnVpbGRlci0+YW5kKGVxKGNvbCgnc3RhdHVzJyksIGxpdGVyYWwoJ2FjdGl2ZScpKSk7CiAqIH0KICoKICogaWYgKCEkYnVpbGRlci0+aXNFbXB0eSgpKSB7CiAqICAgICAkcXVlcnkgPSBzZWxlY3QoKS0+ZnJvbSh0YWJsZSgndXNlcnMnKSktPndoZXJlKCRidWlsZGVyKTsKICogfQogKiBgYGAKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/condition.php","start_line_in_file":313,"slug":"and","name":"and_","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"conditions","type":[{"name":"Condition","namespace":"Flow\\PostgreSql\\QueryBuilder\\Condition","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"AndCondition","namespace":"Flow\\PostgreSql\\QueryBuilder\\Condition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENvbWJpbmUgY29uZGl0aW9ucyB3aXRoIEFORC4KICoKICogQHBhcmFtIENvbmRpdGlvbiAuLi4kY29uZGl0aW9ucyBDb25kaXRpb25zIHRvIGNvbWJpbmUKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/condition.php","start_line_in_file":324,"slug":"or","name":"or_","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"conditions","type":[{"name":"Condition","namespace":"Flow\\PostgreSql\\QueryBuilder\\Condition","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"OrCondition","namespace":"Flow\\PostgreSql\\QueryBuilder\\Condition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENvbWJpbmUgY29uZGl0aW9ucyB3aXRoIE9SLgogKgogKiBAcGFyYW0gQ29uZGl0aW9uIC4uLiRjb25kaXRpb25zIENvbmRpdGlvbnMgdG8gY29tYmluZQogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/condition.php","start_line_in_file":336,"slug":"not","name":"not_","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"expression","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"NotCondition","namespace":"Flow\\PostgreSql\\QueryBuilder\\Condition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIE5lZ2F0ZSBhIGNvbmRpdGlvbiBvciBleHByZXNzaW9uIHdpdGggTk9ULgogKgogKiBBY2NlcHRzIGJvdGggQ29uZGl0aW9uIGFuZCBFeHByZXNzaW9uIOKAlCBOT1QgYWx3YXlzIHByb2R1Y2VzIGEgYm9vbGVhbiByZXN1bHQuCiAqIENhbiBiZSB1c2VkIGluIFdIRVJFIGNsYXVzZXMgYW5kIFNFTEVDVCBsaXN0cyAodmlhIC0+YXMoJ2FsaWFzJykpLgogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/condition.php","start_line_in_file":348,"slug":"json-contains","name":"json_contains","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"left","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"right","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"OperatorCondition","namespace":"Flow\\PostgreSql\\QueryBuilder\\Condition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIEpTT05CIGNvbnRhaW5zIGNvbmRpdGlvbiAoQD4pLgogKgogKiBFeGFtcGxlOiBqc29uX2NvbnRhaW5zKGNvbCgnbWV0YWRhdGEnKSwgbGl0ZXJhbF9qc29uKCd7ImNhdGVnb3J5IjogImVsZWN0cm9uaWNzIn0nKSkKICogUHJvZHVjZXM6IG1ldGFkYXRhIEA+ICd7ImNhdGVnb3J5IjogImVsZWN0cm9uaWNzIn0nCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/condition.php","start_line_in_file":364,"slug":"json-contained-by","name":"json_contained_by","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"left","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"right","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"OperatorCondition","namespace":"Flow\\PostgreSql\\QueryBuilder\\Condition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIEpTT05CIGlzIGNvbnRhaW5lZCBieSBjb25kaXRpb24gKDxAKS4KICoKICogRXhhbXBsZToganNvbl9jb250YWluZWRfYnkoY29sKCdtZXRhZGF0YScpLCBsaXRlcmFsX2pzb24oJ3siY2F0ZWdvcnkiOiAiZWxlY3Ryb25pY3MiLCAicHJpY2UiOiAxMDB9JykpCiAqIFByb2R1Y2VzOiBtZXRhZGF0YSA8QCAneyJjYXRlZ29yeSI6ICJlbGVjdHJvbmljcyIsICJwcmljZSI6IDEwMH0nCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/condition.php","start_line_in_file":381,"slug":"json-get","name":"json_get","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"expr","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"key","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"BinaryExpression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIEpTT04gZmllbGQgYWNjZXNzIGV4cHJlc3Npb24gKC0+KS4KICogUmV0dXJucyBKU09OLgogKgogKiBFeGFtcGxlOiBqc29uX2dldChjb2woJ21ldGFkYXRhJyksIGxpdGVyYWxfc3RyaW5nKCdjYXRlZ29yeScpKQogKiBQcm9kdWNlczogbWV0YWRhdGEgLT4gJ2NhdGVnb3J5JwogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/condition.php","start_line_in_file":398,"slug":"json-get-text","name":"json_get_text","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"expr","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"key","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"BinaryExpression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIEpTT04gZmllbGQgYWNjZXNzIGV4cHJlc3Npb24gKC0+PikuCiAqIFJldHVybnMgdGV4dC4KICoKICogRXhhbXBsZToganNvbl9nZXRfdGV4dChjb2woJ21ldGFkYXRhJyksIGxpdGVyYWxfc3RyaW5nKCduYW1lJykpCiAqIFByb2R1Y2VzOiBtZXRhZGF0YSAtPj4gJ25hbWUnCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/condition.php","start_line_in_file":415,"slug":"json-path","name":"json_path","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"expr","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"path","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"BinaryExpression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIEpTT04gcGF0aCBhY2Nlc3MgZXhwcmVzc2lvbiAoIz4pLgogKiBSZXR1cm5zIEpTT04uCiAqCiAqIEV4YW1wbGU6IGpzb25fcGF0aChjb2woJ21ldGFkYXRhJyksIGxpdGVyYWxfc3RyaW5nKCd7Y2F0ZWdvcnksbmFtZX0nKSkKICogUHJvZHVjZXM6IG1ldGFkYXRhICM+ICd7Y2F0ZWdvcnksbmFtZX0nCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/condition.php","start_line_in_file":432,"slug":"json-path-text","name":"json_path_text","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"expr","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"path","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"BinaryExpression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIEpTT04gcGF0aCBhY2Nlc3MgZXhwcmVzc2lvbiAoIz4+KS4KICogUmV0dXJucyB0ZXh0LgogKgogKiBFeGFtcGxlOiBqc29uX3BhdGhfdGV4dChjb2woJ21ldGFkYXRhJyksIGxpdGVyYWxfc3RyaW5nKCd7Y2F0ZWdvcnksbmFtZX0nKSkKICogUHJvZHVjZXM6IG1ldGFkYXRhICM+PiAne2NhdGVnb3J5LG5hbWV9JwogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/condition.php","start_line_in_file":448,"slug":"json-exists","name":"json_exists","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"expr","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"key","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"OperatorCondition","namespace":"Flow\\PostgreSql\\QueryBuilder\\Condition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIEpTT05CIGtleSBleGlzdHMgY29uZGl0aW9uICg\/KS4KICoKICogRXhhbXBsZToganNvbl9leGlzdHMoY29sKCdtZXRhZGF0YScpLCBsaXRlcmFsX3N0cmluZygnY2F0ZWdvcnknKSkKICogUHJvZHVjZXM6IG1ldGFkYXRhID8gJ2NhdGVnb3J5JwogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/condition.php","start_line_in_file":464,"slug":"json-exists-any","name":"json_exists_any","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"expr","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"keys","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"OperatorCondition","namespace":"Flow\\PostgreSql\\QueryBuilder\\Condition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIEpTT05CIGFueSBrZXkgZXhpc3RzIGNvbmRpdGlvbiAoP3wpLgogKgogKiBFeGFtcGxlOiBqc29uX2V4aXN0c19hbnkoY29sKCdtZXRhZGF0YScpLCBhcnJheV9leHByKFtsaXRlcmFsKCdjYXRlZ29yeScpLCBsaXRlcmFsKCduYW1lJyldKSkKICogUHJvZHVjZXM6IG1ldGFkYXRhID98IGFycmF5WydjYXRlZ29yeScsICduYW1lJ10KICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/condition.php","start_line_in_file":480,"slug":"json-exists-all","name":"json_exists_all","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"expr","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"keys","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"OperatorCondition","namespace":"Flow\\PostgreSql\\QueryBuilder\\Condition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIEpTT05CIGFsbCBrZXlzIGV4aXN0IGNvbmRpdGlvbiAoPyYpLgogKgogKiBFeGFtcGxlOiBqc29uX2V4aXN0c19hbGwoY29sKCdtZXRhZGF0YScpLCBhcnJheV9leHByKFtsaXRlcmFsKCdjYXRlZ29yeScpLCBsaXRlcmFsKCduYW1lJyldKSkKICogUHJvZHVjZXM6IG1ldGFkYXRhID8mIGFycmF5WydjYXRlZ29yeScsICduYW1lJ10KICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/condition.php","start_line_in_file":496,"slug":"array-contains","name":"array_contains","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"left","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"right","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"OperatorCondition","namespace":"Flow\\PostgreSql\\QueryBuilder\\Condition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBhcnJheSBjb250YWlucyBjb25kaXRpb24gKEA+KS4KICoKICogRXhhbXBsZTogYXJyYXlfY29udGFpbnMoY29sKCd0YWdzJyksIGFycmF5X2V4cHIoW2xpdGVyYWwoJ3NhbGUnKV0pKQogKiBQcm9kdWNlczogdGFncyBAPiBBUlJBWVsnc2FsZSddCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/condition.php","start_line_in_file":512,"slug":"array-contained-by","name":"array_contained_by","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"left","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"right","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"OperatorCondition","namespace":"Flow\\PostgreSql\\QueryBuilder\\Condition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBhcnJheSBpcyBjb250YWluZWQgYnkgY29uZGl0aW9uICg8QCkuCiAqCiAqIEV4YW1wbGU6IGFycmF5X2NvbnRhaW5lZF9ieShjb2woJ3RhZ3MnKSwgYXJyYXlfZXhwcihbbGl0ZXJhbCgnc2FsZScpLCBsaXRlcmFsKCdmZWF0dXJlZCcpLCBsaXRlcmFsKCduZXcnKV0pKQogKiBQcm9kdWNlczogdGFncyA8QCBBUlJBWVsnc2FsZScsICdmZWF0dXJlZCcsICduZXcnXQogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/condition.php","start_line_in_file":528,"slug":"array-overlap","name":"array_overlap","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"left","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"right","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"OperatorCondition","namespace":"Flow\\PostgreSql\\QueryBuilder\\Condition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBhcnJheSBvdmVybGFwIGNvbmRpdGlvbiAoJiYpLgogKgogKiBFeGFtcGxlOiBhcnJheV9vdmVybGFwKGNvbCgndGFncycpLCBhcnJheV9leHByKFtsaXRlcmFsKCdzYWxlJyksIGxpdGVyYWwoJ2ZlYXR1cmVkJyldKSkKICogUHJvZHVjZXM6IHRhZ3MgJiYgQVJSQVlbJ3NhbGUnLCAnZmVhdHVyZWQnXQogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/condition.php","start_line_in_file":546,"slug":"regex-match","name":"regex_match","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"expr","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"pattern","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"OperatorCondition","namespace":"Flow\\PostgreSql\\QueryBuilder\\Condition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFBPU0lYIHJlZ2V4IG1hdGNoIGNvbmRpdGlvbiAofikuCiAqIENhc2Utc2Vuc2l0aXZlLgogKgogKiBFeGFtcGxlOiByZWdleF9tYXRjaChjb2woJ2VtYWlsJyksIGxpdGVyYWxfc3RyaW5nKCcuKkBnbWFpbFxcLmNvbScpKQogKgogKiBQcm9kdWNlczogZW1haWwgfiAnLipAZ21haWxcLmNvbScKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/condition.php","start_line_in_file":564,"slug":"regex-imatch","name":"regex_imatch","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"expr","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"pattern","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"OperatorCondition","namespace":"Flow\\PostgreSql\\QueryBuilder\\Condition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFBPU0lYIHJlZ2V4IG1hdGNoIGNvbmRpdGlvbiAofiopLgogKiBDYXNlLWluc2Vuc2l0aXZlLgogKgogKiBFeGFtcGxlOiByZWdleF9pbWF0Y2goY29sKCdlbWFpbCcpLCBsaXRlcmFsX3N0cmluZygnLipAZ21haWxcXC5jb20nKSkKICoKICogUHJvZHVjZXM6IGVtYWlsIH4qICcuKkBnbWFpbFwuY29tJwogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/condition.php","start_line_in_file":582,"slug":"not-regex-match","name":"not_regex_match","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"expr","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"pattern","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"OperatorCondition","namespace":"Flow\\PostgreSql\\QueryBuilder\\Condition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFBPU0lYIHJlZ2V4IG5vdCBtYXRjaCBjb25kaXRpb24gKCF+KS4KICogQ2FzZS1zZW5zaXRpdmUuCiAqCiAqIEV4YW1wbGU6IG5vdF9yZWdleF9tYXRjaChjb2woJ2VtYWlsJyksIGxpdGVyYWxfc3RyaW5nKCcuKkBzcGFtXFwuY29tJykpCiAqCiAqIFByb2R1Y2VzOiBlbWFpbCAhfiAnLipAc3BhbVwuY29tJwogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/condition.php","start_line_in_file":600,"slug":"not-regex-imatch","name":"not_regex_imatch","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"expr","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"pattern","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"OperatorCondition","namespace":"Flow\\PostgreSql\\QueryBuilder\\Condition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFBPU0lYIHJlZ2V4IG5vdCBtYXRjaCBjb25kaXRpb24gKCF+KikuCiAqIENhc2UtaW5zZW5zaXRpdmUuCiAqCiAqIEV4YW1wbGU6IG5vdF9yZWdleF9pbWF0Y2goY29sKCdlbWFpbCcpLCBsaXRlcmFsX3N0cmluZygnLipAc3BhbVxcLmNvbScpKQogKgogKiBQcm9kdWNlczogZW1haWwgIX4qICcuKkBzcGFtXC5jb20nCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/condition.php","start_line_in_file":616,"slug":"text-search-match","name":"text_search_match","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"document","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"query","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"OperatorCondition","namespace":"Flow\\PostgreSql\\QueryBuilder\\Condition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIGZ1bGwtdGV4dCBzZWFyY2ggbWF0Y2ggY29uZGl0aW9uIChAQCkuCiAqCiAqIEV4YW1wbGU6IHRleHRfc2VhcmNoX21hdGNoKGNvbCgnZG9jdW1lbnQnKSwgZnVuYygndG9fdHNxdWVyeScsIFtsaXRlcmFsKCdlbmdsaXNoJyksIGxpdGVyYWwoJ2hlbGxvICYgd29ybGQnKV0pKQogKiBQcm9kdWNlczogZG9jdW1lbnQgQEAgdG9fdHNxdWVyeSgnZW5nbGlzaCcsICdoZWxsbyAmIHdvcmxkJykKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/parser.php","start_line_in_file":33,"slug":"sql-parser","name":"sql_parser","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"Parser","namespace":"Flow\\PostgreSql","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/parser.php","start_line_in_file":39,"slug":"sql-parse","name":"sql_parse","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"sql","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ParsedQuery","namespace":"Flow\\PostgreSql","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/parser.php","start_line_in_file":49,"slug":"sql-fingerprint","name":"sql_fingerprint","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"sql","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIFJldHVybnMgYSBmaW5nZXJwcmludCBvZiB0aGUgZ2l2ZW4gU1FMIHF1ZXJ5LgogKiBMaXRlcmFsIHZhbHVlcyBhcmUgbm9ybWFsaXplZCBzbyB0aGV5IHdvbid0IGFmZmVjdCB0aGUgZmluZ2VycHJpbnQuCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/parser.php","start_line_in_file":60,"slug":"sql-normalize","name":"sql_normalize","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"sql","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIE5vcm1hbGl6ZSBTUUwgcXVlcnkgYnkgcmVwbGFjaW5nIGxpdGVyYWwgdmFsdWVzIGFuZCBuYW1lZCBwYXJhbWV0ZXJzIHdpdGggcG9zaXRpb25hbCBwYXJhbWV0ZXJzLgogKiBXSEVSRSBpZCA9IDppZCB3aWxsIGJlIGNoYW5nZWQgaW50byBXSEVSRSBpZCA9ICQxCiAqIFdIRVJFIGlkID0gMSB3aWxsIGJlIGNoYW5nZWQgaW50byBXSEVSRSBpZCA9ICQxLgogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/parser.php","start_line_in_file":70,"slug":"sql-normalize-utility","name":"sql_normalize_utility","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"sql","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIE5vcm1hbGl6ZSB1dGlsaXR5IFNRTCBzdGF0ZW1lbnRzIChEREwgbGlrZSBDUkVBVEUsIEFMVEVSLCBEUk9QKS4KICogVGhpcyBoYW5kbGVzIERETCBzdGF0ZW1lbnRzIGRpZmZlcmVudGx5IGZyb20gcGdfbm9ybWFsaXplKCkgd2hpY2ggaXMgb3B0aW1pemVkIGZvciBETUwuCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/parser.php","start_line_in_file":81,"slug":"sql-split","name":"sql_split","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"sql","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIFNwbGl0IHN0cmluZyB3aXRoIG11bHRpcGxlIFNRTCBzdGF0ZW1lbnRzIGludG8gYXJyYXkgb2YgaW5kaXZpZHVhbCBzdGF0ZW1lbnRzLgogKgogKiBAcmV0dXJuIGFycmF5PHN0cmluZz4KICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/parser.php","start_line_in_file":90,"slug":"sql-deparse-options","name":"sql_deparse_options","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"DeparseOptions","namespace":"Flow\\PostgreSql","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBEZXBhcnNlT3B0aW9ucyBmb3IgY29uZmlndXJpbmcgU1FMIGZvcm1hdHRpbmcuCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/parser.php","start_line_in_file":104,"slug":"sql-deparse","name":"sql_deparse","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"query","type":[{"name":"ParsedQuery","namespace":"Flow\\PostgreSql","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"options","type":[{"name":"DeparseOptions","namespace":"Flow\\PostgreSql","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENvbnZlcnQgYSBQYXJzZWRRdWVyeSBBU1QgYmFjayB0byBTUUwgc3RyaW5nLgogKgogKiBXaGVuIGNhbGxlZCB3aXRob3V0IG9wdGlvbnMsIHJldHVybnMgdGhlIFNRTCBhcyBhIHNpbXBsZSBzdHJpbmcuCiAqIFdoZW4gY2FsbGVkIHdpdGggRGVwYXJzZU9wdGlvbnMsIGFwcGxpZXMgZm9ybWF0dGluZyAocHJldHR5LXByaW50aW5nLCBpbmRlbnRhdGlvbiwgZXRjLikuCiAqCiAqIEB0aHJvd3MgXFJ1bnRpbWVFeGNlcHRpb24gaWYgZGVwYXJzaW5nIGZhaWxzCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/parser.php","start_line_in_file":120,"slug":"sql-format","name":"sql_format","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"sql","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"options","type":[{"name":"DeparseOptions","namespace":"Flow\\PostgreSql","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIFBhcnNlIGFuZCBmb3JtYXQgU1FMIHF1ZXJ5IHdpdGggcHJldHR5IHByaW50aW5nLgogKgogKiBUaGlzIGlzIGEgY29udmVuaWVuY2UgZnVuY3Rpb24gdGhhdCBwYXJzZXMgU1FMIGFuZCByZXR1cm5zIGl0IGZvcm1hdHRlZC4KICoKICogQHBhcmFtIHN0cmluZyAkc3FsIFRoZSBTUUwgcXVlcnkgdG8gZm9ybWF0CiAqIEBwYXJhbSBudWxsfERlcGFyc2VPcHRpb25zICRvcHRpb25zIEZvcm1hdHRpbmcgb3B0aW9ucyAoZGVmYXVsdHMgdG8gcHJldHR5LXByaW50IGVuYWJsZWQpCiAqCiAqIEB0aHJvd3MgXFJ1bnRpbWVFeGNlcHRpb24gaWYgcGFyc2luZyBvciBkZXBhcnNpbmcgZmFpbHMKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/parser.php","start_line_in_file":132,"slug":"sql-summary","name":"sql_summary","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"sql","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"options","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"0"},{"name":"truncateLimit","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"0"}],"return_type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEdlbmVyYXRlIGEgc3VtbWFyeSBvZiBwYXJzZWQgcXVlcmllcyBpbiBwcm90b2J1ZiBmb3JtYXQuCiAqIFVzZWZ1bCBmb3IgcXVlcnkgbW9uaXRvcmluZyBhbmQgbG9nZ2luZyB3aXRob3V0IGZ1bGwgQVNUIG92ZXJoZWFkLgogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/parser.php","start_line_in_file":147,"slug":"sql-to-paginated-query","name":"sql_to_paginated_query","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"sql","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"limit","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"offset","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"0"}],"return_type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIFRyYW5zZm9ybSBhIFNRTCBxdWVyeSBpbnRvIGEgcGFnaW5hdGVkIHF1ZXJ5IHdpdGggTElNSVQgYW5kIE9GRlNFVC4KICoKICogQHBhcmFtIHN0cmluZyAkc3FsIFRoZSBTUUwgcXVlcnkgdG8gcGFnaW5hdGUKICogQHBhcmFtIGludCAkbGltaXQgTWF4aW11bSBudW1iZXIgb2Ygcm93cyB0byByZXR1cm4KICogQHBhcmFtIGludCAkb2Zmc2V0IE51bWJlciBvZiByb3dzIHRvIHNraXAgKHJlcXVpcmVzIE9SREVSIEJZIGluIHF1ZXJ5KQogKgogKiBAcmV0dXJuIHN0cmluZyBUaGUgcGFnaW5hdGVkIFNRTCBxdWVyeQogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/parser.php","start_line_in_file":164,"slug":"sql-to-limited-query","name":"sql_to_limited_query","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"sql","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"limit","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIFRyYW5zZm9ybSBhIFNRTCBxdWVyeSB0byBsaW1pdCByZXN1bHRzIHRvIGEgc3BlY2lmaWMgbnVtYmVyIG9mIHJvd3MuCiAqCiAqIEBwYXJhbSBzdHJpbmcgJHNxbCBUaGUgU1FMIHF1ZXJ5IHRvIGxpbWl0CiAqIEBwYXJhbSBpbnQgJGxpbWl0IE1heGltdW0gbnVtYmVyIG9mIHJvd3MgdG8gcmV0dXJuCiAqCiAqIEByZXR1cm4gc3RyaW5nIFRoZSBsaW1pdGVkIFNRTCBxdWVyeQogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/parser.php","start_line_in_file":183,"slug":"sql-to-count-query","name":"sql_to_count_query","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"sql","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIFRyYW5zZm9ybSBhIFNRTCBxdWVyeSBpbnRvIGEgQ09VTlQgcXVlcnkgZm9yIHBhZ2luYXRpb24uCiAqCiAqIFdyYXBzIHRoZSBxdWVyeSBpbjogU0VMRUNUIENPVU5UKCopIEZST00gKC4uLikgQVMgX2NvdW50X3N1YnEKICogUmVtb3ZlcyBPUkRFUiBCWSBhbmQgTElNSVQvT0ZGU0VUIGZyb20gdGhlIGlubmVyIHF1ZXJ5LgogKgogKiBAcGFyYW0gc3RyaW5nICRzcWwgVGhlIFNRTCBxdWVyeSB0byB0cmFuc2Zvcm0KICoKICogQHJldHVybiBzdHJpbmcgVGhlIENPVU5UIHF1ZXJ5CiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/parser.php","start_line_in_file":205,"slug":"sql-to-keyset-query","name":"sql_to_keyset_query","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"sql","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"limit","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"columns","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"cursor","type":[{"name":"array","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIFRyYW5zZm9ybSBhIFNRTCBxdWVyeSBpbnRvIGEga2V5c2V0IChjdXJzb3ItYmFzZWQpIHBhZ2luYXRlZCBxdWVyeS4KICoKICogTW9yZSBlZmZpY2llbnQgdGhhbiBPRkZTRVQgZm9yIGxhcmdlIGRhdGFzZXRzIC0gdXNlcyBpbmRleGVkIFdIRVJFIGNvbmRpdGlvbnMuCiAqIEF1dG9tYXRpY2FsbHkgZGV0ZWN0cyBleGlzdGluZyBxdWVyeSBwYXJhbWV0ZXJzIGFuZCBhcHBlbmRzIGtleXNldCBwbGFjZWhvbGRlcnMgYXQgdGhlIGVuZC4KICoKICogQHBhcmFtIHN0cmluZyAkc3FsIFRoZSBTUUwgcXVlcnkgdG8gcGFnaW5hdGUgKE9SREVSIEJZIG9wdGlvbmFsOyB3aGVuIHByZXNlbnQgaXQgbXVzdCBlcXVhbCB0aGUga2V5czsgbm8gTElNSVQvT0ZGU0VUKQogKiBAcGFyYW0gaW50ICRsaW1pdCBNYXhpbXVtIG51bWJlciBvZiByb3dzIHRvIHJldHVybgogKiBAcGFyYW0gbGlzdDxLZXlzZXRDb2x1bW4+ICRjb2x1bW5zIENvbHVtbnMgZm9yIGtleXNldCBwYWdpbmF0aW9uIChtdXN0IG1hdGNoIE9SREVSIEJZKQogKiBAcGFyYW0gbnVsbHxsaXN0PGJvb2x8ZmxvYXR8aW50fHN0cmluZz4gJGN1cnNvciBWYWx1ZXMgZnJvbSBsYXN0IHJvdyBvZiBwcmV2aW91cyBwYWdlIChudWxsIGZvciBmaXJzdCBwYWdlKQogKgogKiBAcmV0dXJuIHN0cmluZyBUaGUgcGFnaW5hdGVkIFNRTCBxdWVyeQogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/parser.php","start_line_in_file":220,"slug":"sql-keyset-column","name":"sql_keyset_column","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"column","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"order","type":[{"name":"SortOrder","namespace":"Flow\\PostgreSql\\AST\\Transformers","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\PostgreSql\\AST\\Transformers\\SortOrder::..."}],"return_type":[{"name":"KeysetColumn","namespace":"Flow\\PostgreSql\\AST\\Transformers","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIEtleXNldENvbHVtbiBmb3Iga2V5c2V0IHBhZ2luYXRpb24uCiAqCiAqIEBwYXJhbSBzdHJpbmcgJGNvbHVtbiBDb2x1bW4gbmFtZSAoY2FuIGluY2x1ZGUgdGFibGUgYWxpYXMgbGlrZSAidS5pZCIpCiAqIEBwYXJhbSBTb3J0T3JkZXIgJG9yZGVyIFNvcnQgb3JkZXIgKEFTQyBvciBERVNDKQogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/parser.php","start_line_in_file":229,"slug":"sql-query-columns","name":"sql_query_columns","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"query","type":[{"name":"ParsedQuery","namespace":"Flow\\PostgreSql","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Columns","namespace":"Flow\\PostgreSql\\Extractors","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEV4dHJhY3QgY29sdW1ucyBmcm9tIGEgcGFyc2VkIFNRTCBxdWVyeS4KICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/parser.php","start_line_in_file":238,"slug":"sql-query-tables","name":"sql_query_tables","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"query","type":[{"name":"ParsedQuery","namespace":"Flow\\PostgreSql","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Tables","namespace":"Flow\\PostgreSql\\Extractors","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEV4dHJhY3QgdGFibGVzIGZyb20gYSBwYXJzZWQgU1FMIHF1ZXJ5LgogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/parser.php","start_line_in_file":247,"slug":"sql-query-functions","name":"sql_query_functions","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"query","type":[{"name":"ParsedQuery","namespace":"Flow\\PostgreSql","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Functions","namespace":"Flow\\PostgreSql\\Extractors","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEV4dHJhY3QgZnVuY3Rpb25zIGZyb20gYSBwYXJzZWQgU1FMIHF1ZXJ5LgogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/parser.php","start_line_in_file":256,"slug":"sql-query-order-by","name":"sql_query_order_by","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"query","type":[{"name":"ParsedQuery","namespace":"Flow\\PostgreSql","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"OrderBy","namespace":"Flow\\PostgreSql\\Extractors","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEV4dHJhY3QgT1JERVIgQlkgY2xhdXNlcyBmcm9tIGEgcGFyc2VkIFNRTCBxdWVyeS4KICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/parser.php","start_line_in_file":270,"slug":"sql-query-depth","name":"sql_query_depth","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"sql","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEdldCB0aGUgbWF4aW11bSBuZXN0aW5nIGRlcHRoIG9mIGEgU1FMIHF1ZXJ5LgogKgogKiBFeGFtcGxlOgogKiAtICJTRUxFQ1QgKiBGUk9NIHQiID0+IDEKICogLSAiU0VMRUNUICogRlJPTSAoU0VMRUNUICogRlJPTSB0KSIgPT4gMgogKiAtICJTRUxFQ1QgKiBGUk9NIChTRUxFQ1QgKiBGUk9NIChTRUxFQ1QgKiBGUk9NIHQpKSIgPT4gMwogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/parser.php","start_line_in_file":287,"slug":"sql-to-explain","name":"sql_to_explain","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"sql","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"config","type":[{"name":"ExplainConfig","namespace":"Flow\\PostgreSql\\AST\\Transformers","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIFRyYW5zZm9ybSBhIFNRTCBxdWVyeSBpbnRvIGFuIEVYUExBSU4gcXVlcnkuCiAqCiAqIFJldHVybnMgdGhlIG1vZGlmaWVkIFNRTCB3aXRoIEVYUExBSU4gd3JhcHBlZCBhcm91bmQgaXQuCiAqIERlZmF1bHRzIHRvIEVYUExBSU4gQU5BTFlaRSB3aXRoIEpTT04gZm9ybWF0IGZvciBlYXN5IHBhcnNpbmcuCiAqCiAqIEBwYXJhbSBzdHJpbmcgJHNxbCBUaGUgU1FMIHF1ZXJ5IHRvIGV4cGxhaW4KICogQHBhcmFtIG51bGx8RXhwbGFpbkNvbmZpZyAkY29uZmlnIEVYUExBSU4gY29uZmlndXJhdGlvbiAoZGVmYXVsdHMgdG8gZm9yQW5hbHlzaXMoKSkKICoKICogQHJldHVybiBzdHJpbmcgVGhlIEVYUExBSU4gcXVlcnkKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/parser.php","start_line_in_file":307,"slug":"sql-explain-config","name":"sql_explain_config","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"analyze","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"verbose","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"costs","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"buffers","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"timing","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"format","type":[{"name":"ExplainFormat","namespace":"Flow\\PostgreSql\\QueryBuilder\\Utility","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\PostgreSql\\QueryBuilder\\Utility\\ExplainFormat::..."}],"return_type":[{"name":"ExplainConfig","namespace":"Flow\\PostgreSql\\AST\\Transformers","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBFeHBsYWluQ29uZmlnIGZvciBjdXN0b21pemluZyBFWFBMQUlOIG9wdGlvbnMuCiAqCiAqIEBwYXJhbSBib29sICRhbmFseXplIFdoZXRoZXIgdG8gYWN0dWFsbHkgZXhlY3V0ZSB0aGUgcXVlcnkgKEFOQUxZWkUpCiAqIEBwYXJhbSBib29sICR2ZXJib3NlIEluY2x1ZGUgdmVyYm9zZSBvdXRwdXQKICogQHBhcmFtIGJvb2wgJGNvc3RzIEluY2x1ZGUgY29zdCBlc3RpbWF0ZXMgKGRlZmF1bHQgdHJ1ZSkKICogQHBhcmFtIGJvb2wgJGJ1ZmZlcnMgSW5jbHVkZSBidWZmZXIgdXNhZ2Ugc3RhdGlzdGljcyAocmVxdWlyZXMgYW5hbHl6ZSkKICogQHBhcmFtIGJvb2wgJHRpbWluZyBJbmNsdWRlIHRpbWluZyBpbmZvcm1hdGlvbiAocmVxdWlyZXMgYW5hbHl6ZSkKICogQHBhcmFtIEV4cGxhaW5Gb3JtYXQgJGZvcm1hdCBPdXRwdXQgZm9ybWF0IChKU09OIHJlY29tbWVuZGVkIGZvciBwYXJzaW5nKQogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/parser.php","start_line_in_file":329,"slug":"sql-explain-modifier","name":"sql_explain_modifier","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"config","type":[{"name":"ExplainConfig","namespace":"Flow\\PostgreSql\\AST\\Transformers","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ExplainModifier","namespace":"Flow\\PostgreSql\\AST\\Transformers","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBFeHBsYWluTW9kaWZpZXIgZm9yIHRyYW5zZm9ybWluZyBxdWVyaWVzIGludG8gRVhQTEFJTiBxdWVyaWVzLgogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/parser.php","start_line_in_file":342,"slug":"sql-explain-parse","name":"sql_explain_parse","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"jsonOutput","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Plan","namespace":"Flow\\PostgreSql\\Explain\\Plan","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIFBhcnNlIEVYUExBSU4gSlNPTiBvdXRwdXQgaW50byBhIFBsYW4gb2JqZWN0LgogKgogKiBAcGFyYW0gc3RyaW5nICRqc29uT3V0cHV0IFRoZSBKU09OIG91dHB1dCBmcm9tIEVYUExBSU4gKEZPUk1BVCBKU09OKQogKgogKiBAcmV0dXJuIFBsYW4gVGhlIHBhcnNlZCBleGVjdXRpb24gcGxhbgogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/parser.php","start_line_in_file":355,"slug":"sql-analyze","name":"sql_analyze","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"plan","type":[{"name":"Plan","namespace":"Flow\\PostgreSql\\Explain\\Plan","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"PlanAnalyzer","namespace":"Flow\\PostgreSql\\Explain\\Analyzer","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIHBsYW4gYW5hbHl6ZXIgZm9yIGFuYWx5emluZyBFWFBMQUlOIHBsYW5zLgogKgogKiBAcGFyYW0gUGxhbiAkcGxhbiBUaGUgZXhlY3V0aW9uIHBsYW4gdG8gYW5hbHl6ZQogKgogKiBAcmV0dXJuIFBsYW5BbmFseXplciBUaGUgYW5hbHl6ZXIgZm9yIGV4dHJhY3RpbmcgaW5zaWdodHMKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/client.php","start_line_in_file":46,"slug":"pgsql-connection","name":"pgsql_connection","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"connectionString","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ConnectionParameters","namespace":"Flow\\PostgreSql\\Client","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBjb25uZWN0aW9uIHBhcmFtZXRlcnMgZnJvbSBhIGNvbm5lY3Rpb24gc3RyaW5nLgogKgogKiBBY2NlcHRzIGxpYnBxLXN0eWxlIGNvbm5lY3Rpb24gc3RyaW5nczoKICogLSBLZXktdmFsdWUgZm9ybWF0OiAiaG9zdD1sb2NhbGhvc3QgcG9ydD01NDMyIGRibmFtZT1teWRiIHVzZXI9bXl1c2VyIHBhc3N3b3JkPXNlY3JldCIKICogLSBVUkkgZm9ybWF0OiAicG9zdGdyZXNxbDovL3VzZXI6cGFzc3dvcmRAbG9jYWxob3N0OjU0MzIvZGJuYW1lIgogKgogKiBAZXhhbXBsZQogKiAkcGFyYW1zID0gcGdzcWxfY29ubmVjdGlvbignaG9zdD1sb2NhbGhvc3QgZGJuYW1lPW15ZGInKTsKICogJHBhcmFtcyA9IHBnc3FsX2Nvbm5lY3Rpb24oJ3Bvc3RncmVzcWw6Ly91c2VyOnBhc3NAbG9jYWxob3N0L215ZGInKTsKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/client.php","start_line_in_file":68,"slug":"pgsql-connection-dsn","name":"pgsql_connection_dsn","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"dsn","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ConnectionParameters","namespace":"Flow\\PostgreSql\\Client","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBjb25uZWN0aW9uIHBhcmFtZXRlcnMgZnJvbSBhIERTTiBzdHJpbmcuCiAqCiAqIFBhcnNlcyBzdGFuZGFyZCBQb3N0Z3JlU1FMIERTTiBmb3JtYXQgY29tbW9ubHkgdXNlZCBpbiBlbnZpcm9ubWVudCB2YXJpYWJsZXMKICogKGUuZy4sIERBVEFCQVNFX1VSTCkuIFN1cHBvcnRzIHBvc3RncmVzOi8vLCBwb3N0Z3Jlc3FsOi8vLCBhbmQgcGdzcWw6Ly8gc2NoZW1lcy4KICoKICogQHBhcmFtIHN0cmluZyAkZHNuIERTTiBzdHJpbmcgaW4gZm9ybWF0OiBwb3N0Z3JlczovL3VzZXI6cGFzc3dvcmRAaG9zdDpwb3J0L2RhdGFiYXNlP29wdGlvbnMKICoKICogQHRocm93cyBDbGllbnRcRHNuUGFyc2VyRXhjZXB0aW9uIElmIHRoZSBEU04gY2Fubm90IGJlIHBhcnNlZAogKgogKiBAZXhhbXBsZQogKiAkcGFyYW1zID0gcGdzcWxfY29ubmVjdGlvbl9kc24oJ3Bvc3RncmVzOi8vbXl1c2VyOnNlY3JldEBsb2NhbGhvc3Q6NTQzMi9teWRiJyk7CiAqICRwYXJhbXMgPSBwZ3NxbF9jb25uZWN0aW9uX2RzbigncG9zdGdyZXNxbDovL3VzZXI6cGFzc0BkYi5leGFtcGxlLmNvbS9hcHA\/c3NsbW9kZT1yZXF1aXJlJyk7CiAqICRwYXJhbXMgPSBwZ3NxbF9jb25uZWN0aW9uX2RzbigncGdzcWw6Ly91c2VyOnBhc3NAbG9jYWxob3N0L215ZGInKTsgLy8gU3ltZm9ueS9Eb2N0cmluZSBmb3JtYXQKICogJHBhcmFtcyA9IHBnc3FsX2Nvbm5lY3Rpb25fZHNuKGdldGVudignREFUQUJBU0VfVVJMJykpOwogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/client.php","start_line_in_file":95,"slug":"pgsql-connection-params","name":"pgsql_connection_params","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"database","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"host","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'localhost'"},{"name":"port","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"5432"},{"name":"user","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"password","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"options","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"}],"return_type":[{"name":"ConnectionParameters","namespace":"Flow\\PostgreSql\\Client","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBjb25uZWN0aW9uIHBhcmFtZXRlcnMgZnJvbSBpbmRpdmlkdWFsIHZhbHVlcy4KICoKICogQWxsb3dzIHNwZWNpZnlpbmcgY29ubmVjdGlvbiBwYXJhbWV0ZXJzIGluZGl2aWR1YWxseSBmb3IgYmV0dGVyIHR5cGUgc2FmZXR5CiAqIGFuZCBJREUgc3VwcG9ydC4KICoKICogQHBhcmFtIHN0cmluZyAkZGF0YWJhc2UgRGF0YWJhc2UgbmFtZSAocmVxdWlyZWQpCiAqIEBwYXJhbSBzdHJpbmcgJGhvc3QgSG9zdG5hbWUgKGRlZmF1bHQ6IGxvY2FsaG9zdCkKICogQHBhcmFtIGludCAkcG9ydCBQb3J0IG51bWJlciAoZGVmYXVsdDogNTQzMikKICogQHBhcmFtIG51bGx8c3RyaW5nICR1c2VyIFVzZXJuYW1lIChvcHRpb25hbCkKICogQHBhcmFtIG51bGx8c3RyaW5nICRwYXNzd29yZCBQYXNzd29yZCAob3B0aW9uYWwpCiAqIEBwYXJhbSBhcnJheTxzdHJpbmcsIHN0cmluZz4gJG9wdGlvbnMgQWRkaXRpb25hbCBsaWJwcSBvcHRpb25zCiAqCiAqIEBleGFtcGxlCiAqICRwYXJhbXMgPSBwZ3NxbF9jb25uZWN0aW9uX3BhcmFtcygKICogICAgIGRhdGFiYXNlOiAnbXlkYicsCiAqICAgICBob3N0OiAnbG9jYWxob3N0JywKICogICAgIHVzZXI6ICdteXVzZXInLAogKiAgICAgcGFzc3dvcmQ6ICdzZWNyZXQnLAogKiApOwogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/client.php","start_line_in_file":126,"slug":"pgsql-client","name":"pgsql_client","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"params","type":[{"name":"ConnectionParameters","namespace":"Flow\\PostgreSql\\Client","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"valueConverters","type":[{"name":"ValueConverters","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"context","type":[{"name":"Context","namespace":"Flow\\PostgreSql\\Client","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Client","namespace":"Flow\\PostgreSql\\Client","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFBvc3RncmVTUUwgY2xpZW50IHVzaW5nIGV4dC1wZ3NxbC4KICoKICogVGhlIGNsaWVudCBjb25uZWN0cyBpbW1lZGlhdGVseSBhbmQgaXMgcmVhZHkgdG8gZXhlY3V0ZSBxdWVyaWVzLgogKgogKiBAcGFyYW0gQ2xpZW50XENvbm5lY3Rpb25QYXJhbWV0ZXJzICRwYXJhbXMgQ29ubmVjdGlvbiBwYXJhbWV0ZXJzCiAqIEBwYXJhbSBudWxsfFZhbHVlQ29udmVydGVycyAkdmFsdWVDb252ZXJ0ZXJzIEN1c3RvbSB0eXBlIGNvbnZlcnRlcnMgKG9wdGlvbmFsKQogKiBAcGFyYW0gbnVsbHxDb250ZXh0ICRjb250ZXh0IEJhc2UgbWFwcGVyIENvbnRleHQg4oCUIHRoZSBDbGllbnQgZW5yaWNoZXMgaXQgd2l0aCBzcWwvcGFyYW1ldGVycy9zZWxmIHBlciBxdWVyeSBiZWZvcmUgaGFuZGluZyBpdCB0byBSb3dNYXBwZXI6Om1hcCgpCiAqCiAqIEB0aHJvd3MgQ29ubmVjdGlvbkV4Y2VwdGlvbiBJZiBjb25uZWN0aW9uIGZhaWxzCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/client.php","start_line_in_file":143,"slug":"postgresql-context","name":"postgresql_context","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"data","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"catalog","type":[{"name":"Catalog","namespace":"Flow\\PostgreSql\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Context","namespace":"Flow\\PostgreSql\\Client","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFJvd01hcHBlciBDb250ZXh0IHNlZWRlZCB3aXRoIHVzZXItc3VwcGxpZWQga2V5L3ZhbHVlIGRhdGEgYW5kIGFuIG9wdGlvbmFsIENhdGFsb2cuCiAqCiAqIFRoZSBDb250ZXh0IGlzIGxhdGVyIGVucmljaGVkIHdpdGggYSBRdWVyeSAoc3FsICsgcGFyYW1ldGVycykgYW5kIHRoZSBleGVjdXRpbmcgQ2xpZW50IGJ5IHRoZQogKiBQb3N0Z3JlU1FMIENsaWVudCBiZWZvcmUgYmVpbmcgaGFuZGVkIHRvIFJvd01hcHBlcjo6bWFwKCkuCiAqCiAqIEBwYXJhbSBhcnJheTxzdHJpbmcsIG1peGVkPiAkZGF0YSBVc2VyLXN1cHBsaWVkIGtleS92YWx1ZSBwYWlycwogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/client.php","start_line_in_file":176,"slug":"postgresql-telemetry-options","name":"postgresql_telemetry_options","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"traceQueries","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"transactionSpans","type":[{"name":"TransactionSpanMode","namespace":"Flow\\PostgreSql\\Client\\Telemetry","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\PostgreSql\\Client\\Telemetry\\TransactionSpanMode::..."},{"name":"collectMetrics","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"logQueries","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"maxQueryLength","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"1000"},{"name":"includeParameters","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"maxParameters","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"10"},{"name":"maxParameterLength","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"100"}],"return_type":[{"name":"PostgreSqlTelemetryOptions","namespace":"Flow\\PostgreSql\\Client\\Telemetry","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSB0ZWxlbWV0cnkgb3B0aW9ucyBmb3IgUG9zdGdyZVNRTCBjbGllbnQgaW5zdHJ1bWVudGF0aW9uLgogKgogKiBDb250cm9scyB3aGljaCB0ZWxlbWV0cnkgc2lnbmFscyAodHJhY2VzLCBtZXRyaWNzLCBsb2dzKSBhcmUgZW5hYmxlZAogKiBhbmQgaG93IHF1ZXJ5IGluZm9ybWF0aW9uIGlzIGNhcHR1cmVkLgogKgogKiBAcGFyYW0gYm9vbCAkdHJhY2VRdWVyaWVzIENyZWF0ZSBzcGFucyBmb3IgcXVlcnkgZXhlY3V0aW9uIChkZWZhdWx0OiB0cnVlKQogKiBAcGFyYW0gVHJhbnNhY3Rpb25TcGFuTW9kZSAkdHJhbnNhY3Rpb25TcGFucyBIb3cgdHJhbnNhY3Rpb25zIGFyZSB0cmFjZWQ6IEdST1VQRUQgKGRlZmF1bHQpLCBQRVJfT1BFUkFUSU9OIG9yIE9GRgogKiBAcGFyYW0gYm9vbCAkY29sbGVjdE1ldHJpY3MgQ29sbGVjdCBkdXJhdGlvbiBhbmQgcm93IGNvdW50IG1ldHJpY3MgKGRlZmF1bHQ6IHRydWUpCiAqIEBwYXJhbSBib29sICRsb2dRdWVyaWVzIExvZyBleGVjdXRlZCBxdWVyaWVzIChkZWZhdWx0OiBmYWxzZSkKICogQHBhcmFtIG51bGx8aW50ICRtYXhRdWVyeUxlbmd0aCBNYXhpbXVtIHF1ZXJ5IHRleHQgbGVuZ3RoIGluIHRlbGVtZXRyeSAoZGVmYXVsdDogMTAwMCwgbnVsbCA9IHVubGltaXRlZCkKICogQHBhcmFtIGJvb2wgJGluY2x1ZGVQYXJhbWV0ZXJzIEluY2x1ZGUgcXVlcnkgcGFyYW1ldGVycyBpbiB0ZWxlbWV0cnkgKGRlZmF1bHQ6IGZhbHNlLCBzZWN1cml0eSBjb25zaWRlcmF0aW9uKQogKgogKiBAZXhhbXBsZQogKiAvLyBEZWZhdWx0IG9wdGlvbnMgKHRyYWNlcyBhbmQgbWV0cmljcyBlbmFibGVkKQogKiAkb3B0aW9ucyA9IHBvc3RncmVzcWxfdGVsZW1ldHJ5X29wdGlvbnMoKTsKICoKICogLy8gRW5hYmxlIHF1ZXJ5IGxvZ2dpbmcKICogJG9wdGlvbnMgPSBwb3N0Z3Jlc3FsX3RlbGVtZXRyeV9vcHRpb25zKGxvZ1F1ZXJpZXM6IHRydWUpOwogKgogKiAvLyBNZXRyaWNzIG9ubHksIG5vIHNwYW5zCiAqICRvcHRpb25zID0gcG9zdGdyZXNxbF90ZWxlbWV0cnlfb3B0aW9ucygKICogICAgIHRyYWNlUXVlcmllczogZmFsc2UsCiAqICAgICB0cmFuc2FjdGlvblNwYW5zOiBUcmFuc2FjdGlvblNwYW5Nb2RlOjpPRkYsCiAqICAgICBjb2xsZWN0TWV0cmljczogdHJ1ZSwKICogKTsKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/client.php","start_line_in_file":214,"slug":"postgresql-telemetry-config","name":"postgresql_telemetry_config","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"telemetry","type":[{"name":"Telemetry","namespace":"Flow\\Telemetry","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"clock","type":[{"name":"ClockInterface","namespace":"Psr\\Clock","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"options","type":[{"name":"PostgreSqlTelemetryOptions","namespace":"Flow\\PostgreSql\\Client\\Telemetry","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"PostgreSqlTelemetryConfig","namespace":"Flow\\PostgreSql\\Client\\Telemetry","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSB0ZWxlbWV0cnkgY29uZmlndXJhdGlvbiBmb3IgUG9zdGdyZVNRTCBjbGllbnQuCiAqCiAqIEJ1bmRsZXMgdGVsZW1ldHJ5IGluc3RhbmNlLCBjbG9jaywgYW5kIG9wdGlvbnMgbmVlZGVkIHRvIGluc3RydW1lbnQgYSBQb3N0Z3JlU1FMIGNsaWVudC4KICoKICogQHBhcmFtIFRlbGVtZXRyeSAkdGVsZW1ldHJ5IFRoZSB0ZWxlbWV0cnkgaW5zdGFuY2UKICogQHBhcmFtIENsb2NrSW50ZXJmYWNlICRjbG9jayBDbG9jayBmb3IgdGltZXN0YW1wcwogKiBAcGFyYW0gbnVsbHxQb3N0Z3JlU3FsVGVsZW1ldHJ5T3B0aW9ucyAkb3B0aW9ucyBUZWxlbWV0cnkgb3B0aW9ucyAoZGVmYXVsdDogYWxsIGVuYWJsZWQpCiAqCiAqIEBleGFtcGxlCiAqICRjb25maWcgPSBwb3N0Z3Jlc3FsX3RlbGVtZXRyeV9jb25maWcoCiAqICAgICB0ZWxlbWV0cnkocmVzb3VyY2UoWydzZXJ2aWNlLm5hbWUnID0+ICdteS1hcHAnXSkpLAogKiAgICAgbmV3IFN5c3RlbUNsb2NrKCksCiAqICk7CiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/client.php","start_line_in_file":260,"slug":"traceable-postgresql-client","name":"traceable_postgresql_client","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"client","type":[{"name":"Client","namespace":"Flow\\PostgreSql\\Client","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"telemetryConfig","type":[{"name":"PostgreSqlTelemetryConfig","namespace":"Flow\\PostgreSql\\Client\\Telemetry","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"TraceableClient","namespace":"Flow\\PostgreSql\\Client\\Telemetry","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIFdyYXAgYSBQb3N0Z3JlU1FMIGNsaWVudCB3aXRoIHRlbGVtZXRyeSBpbnN0cnVtZW50YXRpb24uCiAqCiAqIFJldHVybnMgYSBkZWNvcmF0b3IgdGhhdCBhZGRzIHNwYW5zLCBtZXRyaWNzLCBhbmQgbG9ncyB0byBhbGwKICogcXVlcnkgYW5kIHRyYW5zYWN0aW9uIG9wZXJhdGlvbnMgZm9sbG93aW5nIE9wZW5UZWxlbWV0cnkgY29udmVudGlvbnMuCiAqCiAqIEBwYXJhbSBDbGllbnRcQ2xpZW50ICRjbGllbnQgVGhlIFBvc3RncmVTUUwgY2xpZW50IHRvIGluc3RydW1lbnQKICogQHBhcmFtIFBvc3RncmVTcWxUZWxlbWV0cnlDb25maWcgJHRlbGVtZXRyeUNvbmZpZyBUZWxlbWV0cnkgY29uZmlndXJhdGlvbgogKgogKiBAZXhhbXBsZQogKiAkY2xpZW50ID0gcGdzcWxfY2xpZW50KHBnc3FsX2Nvbm5lY3Rpb24oJ2hvc3Q9bG9jYWxob3N0IGRibmFtZT1teWRiJykpOwogKgogKiAkdHJhY2VhYmxlQ2xpZW50ID0gdHJhY2VhYmxlX3Bvc3RncmVzcWxfY2xpZW50KAogKiAgICAgJGNsaWVudCwKICogICAgIHBvc3RncmVzcWxfdGVsZW1ldHJ5X2NvbmZpZygKICogICAgICAgICB0ZWxlbWV0cnkocmVzb3VyY2UoWydzZXJ2aWNlLm5hbWUnID0+ICdteS1hcHAnXSkpLAogKiAgICAgICAgIG5ldyBTeXN0ZW1DbG9jaygpLAogKiAgICAgICAgIHBvc3RncmVzcWxfdGVsZW1ldHJ5X29wdGlvbnMoCiAqICAgICAgICAgICAgIHRyYWNlUXVlcmllczogdHJ1ZSwKICogICAgICAgICAgICAgdHJhbnNhY3Rpb25TcGFuczogVHJhbnNhY3Rpb25TcGFuTW9kZTo6R1JPVVBFRCwKICogICAgICAgICAgICAgY29sbGVjdE1ldHJpY3M6IHRydWUsCiAqICAgICAgICAgICAgIGxvZ1F1ZXJpZXM6IHRydWUsCiAqICAgICAgICAgICAgIG1heFF1ZXJ5TGVuZ3RoOiA1MDAsCiAqICAgICAgICAgKSwKICogICAgICksCiAqICk7CiAqCiAqIC8vIEFsbCBvcGVyYXRpb25zIG5vdyB0cmFjZWQKICogJHRyYWNlYWJsZUNsaWVudC0+dHJhbnNhY3Rpb24oZnVuY3Rpb24gKENsaWVudCAkY2xpZW50KSB7CiAqICAgICAkdXNlciA9ICRjbGllbnQtPmZldGNoU2luZ2xlKCdTRUxFQ1QgKiBGUk9NIHVzZXJzIFdIRVJFIGlkID0gJDEnLCBbMTIzXSk7CiAqICAgICAkY2xpZW50LT5leGVjdXRlKCdVUERBVEUgdXNlcnMgU0VUIGxhc3RfbG9naW4gPSBOT1coKSBXSEVSRSBpZCA9ICQxJywgWzEyM10pOwogKiB9KTsKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/client.php","start_line_in_file":300,"slug":"constructor-mapper","name":"constructor_mapper","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"class","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ConstructorMapper","namespace":"Flow\\PostgreSql\\Client\\RowMapper","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEB0ZW1wbGF0ZSBUIG9mIG9iamVjdAogKgogKiBAcGFyYW0gY2xhc3Mtc3RyaW5nPFQ+ICRjbGFzcwogKgogKiBAcmV0dXJuIENvbnN0cnVjdG9yTWFwcGVyPFQ+CiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/client.php","start_line_in_file":315,"slug":"type-mapper","name":"type_mapper","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"type","type":[{"name":"Type","namespace":"Flow\\Types","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"next","type":[{"name":"RowMapper","namespace":"Flow\\PostgreSql\\Client","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"TypeMapper","namespace":"Flow\\PostgreSql\\Client\\RowMapper","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEB0ZW1wbGF0ZSBUVHlwZQogKiBAdGVtcGxhdGUgVE91dAogKgogKiBAcGFyYW0gRmxvd1R5cGU8VFR5cGU+ICR0eXBlCiAqIEBwYXJhbSBudWxsfFJvd01hcHBlcjxUT3V0PiAkbmV4dAogKgogKiBAcmV0dXJuICgkbmV4dCBpcyBudWxsID8gVHlwZU1hcHBlcjxUVHlwZSwgVFR5cGU+IDogVHlwZU1hcHBlcjxUVHlwZSwgVE91dD4pCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/client.php","start_line_in_file":343,"slug":"static-factory-mapper","name":"static_factory_mapper","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"class","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"method","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"StaticFactoryMapper","namespace":"Flow\\PostgreSql\\Client\\RowMapper","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIHJvdyBtYXBwZXIgYmFja2VkIGJ5IGEgcHVibGljIHN0YXRpYyBmYWN0b3J5IG1ldGhvZC4KICoKICogVGhlIGZhY3RvcnkgbWV0aG9kIG11c3QgYWNjZXB0IGEgc2luZ2xlIGFycmF5PHN0cmluZywgbWl4ZWQ+ICRyb3cgYW5kIHJldHVybgogKiBhbiBpbnN0YW5jZSBvZiB0aGUgdGFyZ2V0IGNsYXNzLiBJZiB5b3VyIGZhY3RvcnkgbmVlZHMgYWNjZXNzIHRvIHRoZSBtYXBwaW5nCiAqIENvbnRleHQgKHNxbC9wYXJhbWV0ZXJzL2NsaWVudC9jYXRhbG9nL3VzZXItZGF0YSksIGltcGxlbWVudCBSb3dNYXBwZXIgZGlyZWN0bHkuCiAqCiAqIEB0ZW1wbGF0ZSBUIG9mIG9iamVjdAogKgogKiBAcGFyYW0gY2xhc3Mtc3RyaW5nPFQ+ICRjbGFzcwogKiBAcGFyYW0gbm9uLWVtcHR5LXN0cmluZyAkbWV0aG9kCiAqCiAqIEByZXR1cm4gU3RhdGljRmFjdG9yeU1hcHBlcjxUPgogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/client.php","start_line_in_file":372,"slug":"typed","name":"typed","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"value","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null},{"name":"targetType","type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"TypedValue","namespace":"Flow\\PostgreSql\\Client","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIFdyYXAgYSB2YWx1ZSB3aXRoIGV4cGxpY2l0IFBvc3RncmVTUUwgdHlwZSBpbmZvcm1hdGlvbiBmb3IgcGFyYW1ldGVyIGJpbmRpbmcuCiAqCiAqIFVzZSB3aGVuIGF1dG8tZGV0ZWN0aW9uIGlzbid0IHN1ZmZpY2llbnQgb3Igd2hlbiB5b3UgbmVlZCB0byBzcGVjaWZ5CiAqIHRoZSBleGFjdCBQb3N0Z3JlU1FMIHR5cGUgKHNpbmNlIG9uZSBQSFAgdHlwZSBjYW4gbWFwIHRvIG11bHRpcGxlIFBvc3RncmVTUUwgdHlwZXMpOgogKiAtIGludCBjb3VsZCBiZSBJTlQyLCBJTlQ0LCBvciBJTlQ4CiAqIC0gc3RyaW5nIGNvdWxkIGJlIFRFWFQsIFZBUkNIQVIsIG9yIENIQVIKICogLSBhcnJheSBtdXN0IGFsd2F5cyB1c2UgdHlwZWQoKSBzaW5jZSBhdXRvLWRldGVjdGlvbiBjYW5ub3QgZGV0ZXJtaW5lIGVsZW1lbnQgdHlwZQogKiAtIERhdGVUaW1lSW50ZXJmYWNlIGNvdWxkIGJlIFRJTUVTVEFNUCBvciBUSU1FU1RBTVBUWgogKiAtIEpzb24gY291bGQgYmUgSlNPTiBvciBKU09OQgogKgogKiBAcGFyYW0gbWl4ZWQgJHZhbHVlIFRoZSB2YWx1ZSB0byBiaW5kCiAqIEBwYXJhbSBWYWx1ZVR5cGUgJHRhcmdldFR5cGUgVGhlIFBvc3RncmVTUUwgdHlwZSB0byBjb252ZXJ0IHRoZSB2YWx1ZSB0bwogKgogKiBAZXhhbXBsZQogKiAkY2xpZW50LT5mZXRjaCgKICogICAgICdTRUxFQ1QgKiBGUk9NIHVzZXJzIFdIRVJFIGlkID0gJDEgQU5EIHRhZ3MgPSAkMicsCiAqICAgICBbCiAqICAgICAgICAgdHlwZWQoJzU1MGU4NDAwLWUyOWItNDFkNC1hNzE2LTQ0NjY1NTQ0MDAwMCcsIFZhbHVlVHlwZTo6VVVJRCksCiAqICAgICAgICAgdHlwZWQoWyd0YWcxJywgJ3RhZzInXSwgVmFsdWVUeXBlOjpURVhUX0FSUkFZKSwKICogICAgIF0KICogKTsKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/client.php","start_line_in_file":386,"slug":"converted-parameters","name":"converted_parameters","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"values","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ConvertedParameters","namespace":"Flow\\PostgreSql\\Client","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIFBhcmFtZXRlcnMgYWxyZWFkeSBpbiBQb3N0Z3JlU1FMJ3MgdGV4dCBmb3JtLCB3aGljaCBDbGllbnQ6OmV4ZWN1dGUoKSBzZW5kcyB3aXRob3V0IHJ1bm5pbmcgYSBjb252ZXJ0ZXIuCiAqCiAqIEBwYXJhbSBsaXN0PG51bGx8c3RyaW5nPiAkdmFsdWVzCiAqCiAqIEBleGFtcGxlCiAqICRjbGllbnQtPmV4ZWN1dGUoJ1VQREFURSB1c2VycyBTRVQgYWN0aXZlID0gJDEgV0hFUkUgaWQgPSAkMicsIGNvbnZlcnRlZF9wYXJhbWV0ZXJzKFsnZicsICcxJ10pKTsKICov"},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":127,"slug":"trace-id","name":"trace_id","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"hex","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"TraceId","namespace":"Flow\\Telemetry\\Context","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFRyYWNlSWQuCiAqCiAqIElmIGEgaGV4IHN0cmluZyBpcyBwcm92aWRlZCwgY3JlYXRlcyBhIFRyYWNlSWQgZnJvbSBpdC4KICogT3RoZXJ3aXNlLCBnZW5lcmF0ZXMgYSBuZXcgcmFuZG9tIFRyYWNlSWQuCiAqCiAqIEBwYXJhbSBudWxsfHN0cmluZyAkaGV4IE9wdGlvbmFsIDMyLWNoYXJhY3RlciBoZXhhZGVjaW1hbCBzdHJpbmcKICoKICogQHRocm93cyBcSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uIGlmIHRoZSBoZXggc3RyaW5nIGlzIGludmFsaWQKICov"},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":147,"slug":"span-id","name":"span_id","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"hex","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"SpanId","namespace":"Flow\\Telemetry\\Context","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFNwYW5JZC4KICoKICogSWYgYSBoZXggc3RyaW5nIGlzIHByb3ZpZGVkLCBjcmVhdGVzIGEgU3BhbklkIGZyb20gaXQuCiAqIE90aGVyd2lzZSwgZ2VuZXJhdGVzIGEgbmV3IHJhbmRvbSBTcGFuSWQuCiAqCiAqIEBwYXJhbSBudWxsfHN0cmluZyAkaGV4IE9wdGlvbmFsIDE2LWNoYXJhY3RlciBoZXhhZGVjaW1hbCBzdHJpbmcKICoKICogQHRocm93cyBcSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uIGlmIHRoZSBoZXggc3RyaW5nIGlzIGludmFsaWQKICov"},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":162,"slug":"baggage","name":"baggage","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"entries","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"}],"return_type":[{"name":"Baggage","namespace":"Flow\\Telemetry\\Context","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIEJhZ2dhZ2UuCiAqCiAqIEBwYXJhbSBhcnJheTxzdHJpbmcsIHN0cmluZz4gJGVudHJpZXMgSW5pdGlhbCBrZXktdmFsdWUgZW50cmllcwogKi8="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":176,"slug":"context","name":"context","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"baggage","type":[{"name":"Baggage","namespace":"Flow\\Telemetry\\Context","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Context","namespace":"Flow\\Telemetry\\Context","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIHJvb3QgQ29udGV4dCAobm8gYWN0aXZlIHNwYW4pLgogKgogKiBBIHNwYW4gY3JlYXRlZCBpbiB0aGlzIGNvbnRleHQgYmVjb21lcyBhIG5ldyB0cmFjZSByb290LiBBdHRhY2ggYW4gYWN0aXZlIHNwYW4gd2l0aAogKiBDb250ZXh0Ojp3aXRoQWN0aXZlU3BhbigpIHRvIG1ha2Ugc3Vic2VxdWVudCBzcGFucyBpdHMgY2hpbGRyZW4uCiAqCiAqIEBwYXJhbSBudWxsfEJhZ2dhZ2UgJGJhZ2dhZ2UgT3B0aW9uYWwgQmFnZ2FnZSB0byB1c2UKICov"},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":190,"slug":"memory-context-storage","name":"memory_context_storage","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"context","type":[{"name":"Context","namespace":"Flow\\Telemetry\\Context","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"MemoryContextStorage","namespace":"Flow\\Telemetry\\Context","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIE1lbW9yeUNvbnRleHRTdG9yYWdlLgogKgogKiBJbi1tZW1vcnkgY29udGV4dCBzdG9yYWdlIGZvciBzdG9yaW5nIGFuZCByZXRyaWV2aW5nIHRoZSBjdXJyZW50IGNvbnRleHQuCiAqIEEgc2luZ2xlIGluc3RhbmNlIHNob3VsZCBiZSBzaGFyZWQgYWNyb3NzIGFsbCBwcm92aWRlcnMgd2l0aGluIGEgcmVxdWVzdCBsaWZlY3ljbGUuCiAqCiAqIEBwYXJhbSBudWxsfENvbnRleHQgJGNvbnRleHQgT3B0aW9uYWwgaW5pdGlhbCBjb250ZXh0CiAqLw=="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":201,"slug":"resource","name":"resource","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"attributes","type":[{"name":"Attributes","namespace":"Flow\\Telemetry","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"}],"return_type":[{"name":"Resource","namespace":"Flow\\Telemetry","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFJlc291cmNlLgogKgogKiBAcGFyYW0gYXJyYXk8c3RyaW5nLCBhcnJheTxhcnJheS1rZXksIG1peGVkPnxib29sfFxEYXRlVGltZUludGVyZmFjZXxmbG9hdHxpbnR8c3RyaW5nfFxUaHJvd2FibGU+fEF0dHJpYnV0ZXMgJGF0dHJpYnV0ZXMgUmVzb3VyY2UgYXR0cmlidXRlcwogKi8="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":214,"slug":"span-context","name":"span_context","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"traceId","type":[{"name":"TraceId","namespace":"Flow\\Telemetry\\Context","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"spanId","type":[{"name":"SpanId","namespace":"Flow\\Telemetry\\Context","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"parentSpanId","type":[{"name":"SpanId","namespace":"Flow\\Telemetry\\Context","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"SpanContext","namespace":"Flow\\Telemetry\\Tracer","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFNwYW5Db250ZXh0LgogKgogKiBAcGFyYW0gVHJhY2VJZCAkdHJhY2VJZCBUaGUgdHJhY2UgSUQKICogQHBhcmFtIFNwYW5JZCAkc3BhbklkIFRoZSBzcGFuIElECiAqIEBwYXJhbSBudWxsfFNwYW5JZCAkcGFyZW50U3BhbklkIE9wdGlvbmFsIHBhcmVudCBzcGFuIElECiAqLw=="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":227,"slug":"span-event","name":"span_event","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"timestamp","type":[{"name":"DateTimeImmutable","namespace":"","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"attributes","type":[{"name":"Attributes","namespace":"Flow\\Telemetry","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"}],"return_type":[{"name":"GenericEvent","namespace":"Flow\\Telemetry\\Tracer","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFNwYW5FdmVudCAoR2VuZXJpY0V2ZW50KSB3aXRoIGFuIGV4cGxpY2l0IHRpbWVzdGFtcC4KICoKICogQHBhcmFtIHN0cmluZyAkbmFtZSBFdmVudCBuYW1lCiAqIEBwYXJhbSBcRGF0ZVRpbWVJbW11dGFibGUgJHRpbWVzdGFtcCBFdmVudCB0aW1lc3RhbXAKICogQHBhcmFtIGFycmF5PHN0cmluZywgYXJyYXk8YXJyYXkta2V5LCBtaXhlZD58Ym9vbHxcRGF0ZVRpbWVJbnRlcmZhY2V8ZmxvYXR8aW50fHN0cmluZ3xcVGhyb3dhYmxlPnxBdHRyaWJ1dGVzICRhdHRyaWJ1dGVzIEV2ZW50IGF0dHJpYnV0ZXMKICov"},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":239,"slug":"span-link","name":"span_link","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"context","type":[{"name":"SpanContext","namespace":"Flow\\Telemetry\\Tracer","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"attributes","type":[{"name":"Attributes","namespace":"Flow\\Telemetry","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"}],"return_type":[{"name":"SpanLink","namespace":"Flow\\Telemetry\\Tracer","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFNwYW5MaW5rLgogKgogKiBAcGFyYW0gU3BhbkNvbnRleHQgJGNvbnRleHQgVGhlIGxpbmtlZCBzcGFuIGNvbnRleHQKICogQHBhcmFtIGFycmF5PHN0cmluZywgYXJyYXk8YXJyYXkta2V5LCBtaXhlZD58Ym9vbHxcRGF0ZVRpbWVJbnRlcmZhY2V8ZmxvYXR8aW50fHN0cmluZ3xcVGhyb3dhYmxlPnxBdHRyaWJ1dGVzICRhdHRyaWJ1dGVzIExpbmsgYXR0cmlidXRlcwogKi8="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":255,"slug":"span-limits","name":"span_limits","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"attributeCountLimit","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"128"},{"name":"eventCountLimit","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"128"},{"name":"linkCountLimit","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"128"},{"name":"attributePerEventCountLimit","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"128"},{"name":"attributePerLinkCountLimit","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"128"},{"name":"attributeValueLengthLimit","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"SpanLimits","namespace":"Flow\\Telemetry\\Tracer","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBTcGFuTGltaXRzIGNvbmZpZ3VyYXRpb24uCiAqCiAqIEBwYXJhbSBpbnQgJGF0dHJpYnV0ZUNvdW50TGltaXQgTWF4aW11bSBudW1iZXIgb2YgYXR0cmlidXRlcyBwZXIgc3BhbgogKiBAcGFyYW0gaW50ICRldmVudENvdW50TGltaXQgTWF4aW11bSBudW1iZXIgb2YgZXZlbnRzIHBlciBzcGFuCiAqIEBwYXJhbSBpbnQgJGxpbmtDb3VudExpbWl0IE1heGltdW0gbnVtYmVyIG9mIGxpbmtzIHBlciBzcGFuCiAqIEBwYXJhbSBpbnQgJGF0dHJpYnV0ZVBlckV2ZW50Q291bnRMaW1pdCBNYXhpbXVtIG51bWJlciBvZiBhdHRyaWJ1dGVzIHBlciBldmVudAogKiBAcGFyYW0gaW50ICRhdHRyaWJ1dGVQZXJMaW5rQ291bnRMaW1pdCBNYXhpbXVtIG51bWJlciBvZiBhdHRyaWJ1dGVzIHBlciBsaW5rCiAqIEBwYXJhbSBudWxsfGludCAkYXR0cmlidXRlVmFsdWVMZW5ndGhMaW1pdCBNYXhpbXVtIGxlbmd0aCBmb3Igc3RyaW5nIGF0dHJpYnV0ZSB2YWx1ZXMgKG51bGwgPSB1bmxpbWl0ZWQpCiAqLw=="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":280,"slug":"log-record-limits","name":"log_record_limits","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"attributeCountLimit","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"128"},{"name":"attributeValueLengthLimit","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"LogRecordLimits","namespace":"Flow\\Telemetry\\Logger","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBMb2dSZWNvcmRMaW1pdHMgY29uZmlndXJhdGlvbi4KICoKICogQHBhcmFtIGludCAkYXR0cmlidXRlQ291bnRMaW1pdCBNYXhpbXVtIG51bWJlciBvZiBhdHRyaWJ1dGVzIHBlciBsb2cgcmVjb3JkCiAqIEBwYXJhbSBudWxsfGludCAkYXR0cmlidXRlVmFsdWVMZW5ndGhMaW1pdCBNYXhpbXVtIGxlbmd0aCBmb3Igc3RyaW5nIGF0dHJpYnV0ZSB2YWx1ZXMgKG51bGwgPSB1bmxpbWl0ZWQpCiAqLw=="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":291,"slug":"metric-limits","name":"metric_limits","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"cardinalityLimit","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"2000"}],"return_type":[{"name":"MetricLimits","namespace":"Flow\\Telemetry\\Meter","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBNZXRyaWNMaW1pdHMgY29uZmlndXJhdGlvbi4KICoKICogQHBhcmFtIGludCAkY2FyZGluYWxpdHlMaW1pdCBNYXhpbXVtIG51bWJlciBvZiB1bmlxdWUgYXR0cmlidXRlIGNvbWJpbmF0aW9ucyBwZXIgaW5zdHJ1bWVudAogKi8="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":302,"slug":"void-span-processor","name":"void_span_processor","namespace":"Flow\\Telemetry\\DSL","parameters":[],"return_type":[{"name":"VoidSpanProcessor","namespace":"Flow\\Telemetry\\Provider\\Void","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFZvaWRTcGFuUHJvY2Vzc29yLgogKgogKiBOby1vcCBzcGFuIHByb2Nlc3NvciB0aGF0IGRpc2NhcmRzIGFsbCBkYXRhLgogKi8="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":313,"slug":"void-metric-processor","name":"void_metric_processor","namespace":"Flow\\Telemetry\\DSL","parameters":[],"return_type":[{"name":"VoidMetricProcessor","namespace":"Flow\\Telemetry\\Provider\\Void","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFZvaWRNZXRyaWNQcm9jZXNzb3IuCiAqCiAqIE5vLW9wIG1ldHJpYyBwcm9jZXNzb3IgdGhhdCBkaXNjYXJkcyBhbGwgZGF0YS4KICov"},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":324,"slug":"void-log-processor","name":"void_log_processor","namespace":"Flow\\Telemetry\\DSL","parameters":[],"return_type":[{"name":"VoidLogProcessor","namespace":"Flow\\Telemetry\\Provider\\Void","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFZvaWRMb2dQcm9jZXNzb3IuCiAqCiAqIE5vLW9wIGxvZyBwcm9jZXNzb3IgdGhhdCBkaXNjYXJkcyBhbGwgZGF0YS4KICov"},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":335,"slug":"void-exporter","name":"void_exporter","namespace":"Flow\\Telemetry\\DSL","parameters":[],"return_type":[{"name":"VoidExporter","namespace":"Flow\\Telemetry\\Provider\\Void","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFZvaWRFeHBvcnRlci4KICoKICogTm8tb3AgdW5pZmllZCBleHBvcnRlciB0aGF0IGRpc2NhcmRzIGxvZ3MsIG1ldHJpY3MsIGFuZCBzcGFucy4KICov"},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":349,"slug":"memory-exporter","name":"memory_exporter","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"maxEntriesPerSignal","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"MemoryExporter","namespace":"Flow\\Telemetry\\Provider\\Memory","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIE1lbW9yeUV4cG9ydGVyLgogKgogKiBVbmlmaWVkIGV4cG9ydGVyIHRoYXQgc3RvcmVzIGxvZ3MsIG1ldHJpY3MsIGFuZCBzcGFucyBpbiBtZW1vcnkgZm9yIGRpcmVjdCBhY2Nlc3MuCiAqIFVzZWZ1bCBmb3IgdGVzdGluZyBhbmQgaW5zcGVjdGlvbiB3aXRob3V0IHNlcmlhbGl6YXRpb24uCiAqCiAqIEBwYXJhbSBudWxsfGludCAkbWF4RW50cmllc1BlclNpZ25hbCBtYXhpbXVtIGVudHJpZXMgcmV0YWluZWQgcGVyIHNpZ25hbCB0eXBlOyBudWxsIGtlZXBzIGV2ZXJ5dGhpbmcKICov"},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":361,"slug":"memory-span-processor","name":"memory_span_processor","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"exporter","type":[{"name":"Exporter","namespace":"Flow\\Telemetry\\Exporter","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"errorHandler","type":[{"name":"ErrorHandler","namespace":"Flow\\Telemetry\\ErrorHandler","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Telemetry\\ErrorHandler\\ErrorLogHandler::..."}],"return_type":[{"name":"MemorySpanProcessor","namespace":"Flow\\Telemetry\\Provider\\Memory","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIE1lbW9yeVNwYW5Qcm9jZXNzb3IuCiAqCiAqIEBwYXJhbSBFeHBvcnRlciAkZXhwb3J0ZXIgVGhlIGV4cG9ydGVyIHRvIHNlbmQgc3BhbnMgdG8KICogQHBhcmFtIEVycm9ySGFuZGxlciAkZXJyb3JIYW5kbGVyIEhhbmRsZXIgZm9yIFRocm93YWJsZXMgcmFpc2VkIGJ5IHRoZSBleHBvcnRlcgogKi8="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":375,"slug":"memory-metric-processor","name":"memory_metric_processor","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"exporter","type":[{"name":"Exporter","namespace":"Flow\\Telemetry\\Exporter","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"errorHandler","type":[{"name":"ErrorHandler","namespace":"Flow\\Telemetry\\ErrorHandler","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Telemetry\\ErrorHandler\\ErrorLogHandler::..."}],"return_type":[{"name":"MemoryMetricProcessor","namespace":"Flow\\Telemetry\\Provider\\Memory","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIE1lbW9yeU1ldHJpY1Byb2Nlc3Nvci4KICoKICogQHBhcmFtIEV4cG9ydGVyICRleHBvcnRlciBUaGUgZXhwb3J0ZXIgdG8gc2VuZCBtZXRyaWNzIHRvCiAqIEBwYXJhbSBFcnJvckhhbmRsZXIgJGVycm9ySGFuZGxlciBIYW5kbGVyIGZvciBUaHJvd2FibGVzIHJhaXNlZCBieSB0aGUgZXhwb3J0ZXIKICov"},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":389,"slug":"memory-log-processor","name":"memory_log_processor","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"exporter","type":[{"name":"Exporter","namespace":"Flow\\Telemetry\\Exporter","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"errorHandler","type":[{"name":"ErrorHandler","namespace":"Flow\\Telemetry\\ErrorHandler","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Telemetry\\ErrorHandler\\ErrorLogHandler::..."}],"return_type":[{"name":"MemoryLogProcessor","namespace":"Flow\\Telemetry\\Provider\\Memory","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIE1lbW9yeUxvZ1Byb2Nlc3Nvci4KICoKICogQHBhcmFtIEV4cG9ydGVyICRleHBvcnRlciBUaGUgZXhwb3J0ZXIgdG8gc2VuZCBsb2dzIHRvCiAqIEBwYXJhbSBFcnJvckhhbmRsZXIgJGVycm9ySGFuZGxlciBIYW5kbGVyIGZvciBUaHJvd2FibGVzIHJhaXNlZCBieSB0aGUgZXhwb3J0ZXIKICov"},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":407,"slug":"tracer-provider","name":"tracer_provider","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"processor","type":[{"name":"SpanProcessor","namespace":"Flow\\Telemetry\\Tracer","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"clock","type":[{"name":"ClockInterface","namespace":"Psr\\Clock","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"contextStorage","type":[{"name":"ContextStorage","namespace":"Flow\\Telemetry\\Context","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"sampler","type":[{"name":"Sampler","namespace":"Flow\\Telemetry\\Tracer\\Sampler","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Telemetry\\Tracer\\Sampler\\ParentBasedSampler::..."},{"name":"limits","type":[{"name":"SpanLimits","namespace":"Flow\\Telemetry\\Tracer","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Telemetry\\Tracer\\SpanLimits::..."},{"name":"errorHandler","type":[{"name":"ErrorHandler","namespace":"Flow\\Telemetry\\ErrorHandler","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Telemetry\\ErrorHandler\\ErrorLogHandler::..."}],"return_type":[{"name":"TracerProvider","namespace":"Flow\\Telemetry\\Tracer","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFRyYWNlclByb3ZpZGVyLgogKgogKiBAcGFyYW0gU3BhblByb2Nlc3NvciAkcHJvY2Vzc29yIFRoZSBwcm9jZXNzb3IgZm9yIHNwYW5zCiAqIEBwYXJhbSBDbG9ja0ludGVyZmFjZSAkY2xvY2sgVGhlIGNsb2NrIGZvciB0aW1lc3RhbXBzCiAqIEBwYXJhbSBDb250ZXh0U3RvcmFnZSAkY29udGV4dFN0b3JhZ2UgU3RvcmFnZSBmb3IgY29udGV4dCBwcm9wYWdhdGlvbgogKiBAcGFyYW0gU2FtcGxlciAkc2FtcGxlciBTYW1wbGluZyBzdHJhdGVneSBmb3Igc3BhbnMKICogQHBhcmFtIFNwYW5MaW1pdHMgJGxpbWl0cyBMaW1pdHMgZm9yIHNwYW4gYXR0cmlidXRlcywgZXZlbnRzLCBhbmQgbGlua3MKICogQHBhcmFtIEVycm9ySGFuZGxlciAkZXJyb3JIYW5kbGVyIEhhbmRsZXIgZm9yIHJ1bnRpbWUgVGhyb3dhYmxlcyByYWlzZWQgYnkgdGhlIHByb2Nlc3NvcgogKi8="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":428,"slug":"logger-provider","name":"logger_provider","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"processor","type":[{"name":"LogProcessor","namespace":"Flow\\Telemetry\\Logger","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"clock","type":[{"name":"ClockInterface","namespace":"Psr\\Clock","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"contextStorage","type":[{"name":"ContextStorage","namespace":"Flow\\Telemetry\\Context","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"limits","type":[{"name":"LogRecordLimits","namespace":"Flow\\Telemetry\\Logger","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Telemetry\\Logger\\LogRecordLimits::..."},{"name":"errorHandler","type":[{"name":"ErrorHandler","namespace":"Flow\\Telemetry\\ErrorHandler","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Telemetry\\ErrorHandler\\ErrorLogHandler::..."}],"return_type":[{"name":"LoggerProvider","namespace":"Flow\\Telemetry\\Logger","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIExvZ2dlclByb3ZpZGVyLgogKgogKiBAcGFyYW0gTG9nUHJvY2Vzc29yICRwcm9jZXNzb3IgVGhlIHByb2Nlc3NvciBmb3IgbG9ncwogKiBAcGFyYW0gQ2xvY2tJbnRlcmZhY2UgJGNsb2NrIFRoZSBjbG9jayBmb3IgdGltZXN0YW1wcwogKiBAcGFyYW0gQ29udGV4dFN0b3JhZ2UgJGNvbnRleHRTdG9yYWdlIFN0b3JhZ2UgZm9yIHNwYW4gY29ycmVsYXRpb24KICogQHBhcmFtIExvZ1JlY29yZExpbWl0cyAkbGltaXRzIExpbWl0cyBmb3IgbG9nIHJlY29yZCBhdHRyaWJ1dGVzCiAqIEBwYXJhbSBFcnJvckhhbmRsZXIgJGVycm9ySGFuZGxlciBIYW5kbGVyIGZvciBydW50aW1lIFRocm93YWJsZXMgcmFpc2VkIGJ5IHRoZSBwcm9jZXNzb3IKICov"},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":449,"slug":"meter-provider","name":"meter_provider","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"processor","type":[{"name":"MetricProcessor","namespace":"Flow\\Telemetry\\Meter","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"clock","type":[{"name":"ClockInterface","namespace":"Psr\\Clock","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"temporality","type":[{"name":"AggregationTemporality","namespace":"Flow\\Telemetry\\Meter","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Telemetry\\Meter\\AggregationTemporality::..."},{"name":"exemplarFilter","type":[{"name":"ExemplarFilter","namespace":"Flow\\Telemetry\\Meter\\Exemplar","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Telemetry\\Meter\\Exemplar\\TraceBasedExemplarFilter::..."},{"name":"limits","type":[{"name":"MetricLimits","namespace":"Flow\\Telemetry\\Meter","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Telemetry\\Meter\\MetricLimits::..."},{"name":"errorHandler","type":[{"name":"ErrorHandler","namespace":"Flow\\Telemetry\\ErrorHandler","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Telemetry\\ErrorHandler\\ErrorLogHandler::..."}],"return_type":[{"name":"MeterProvider","namespace":"Flow\\Telemetry\\Meter","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIE1ldGVyUHJvdmlkZXIuCiAqCiAqIEBwYXJhbSBNZXRyaWNQcm9jZXNzb3IgJHByb2Nlc3NvciBUaGUgcHJvY2Vzc29yIGZvciBtZXRyaWNzCiAqIEBwYXJhbSBDbG9ja0ludGVyZmFjZSAkY2xvY2sgVGhlIGNsb2NrIGZvciB0aW1lc3RhbXBzCiAqIEBwYXJhbSBBZ2dyZWdhdGlvblRlbXBvcmFsaXR5ICR0ZW1wb3JhbGl0eSBBZ2dyZWdhdGlvbiB0ZW1wb3JhbGl0eSBmb3IgbWV0cmljcwogKiBAcGFyYW0gRXhlbXBsYXJGaWx0ZXIgJGV4ZW1wbGFyRmlsdGVyIEZpbHRlciBmb3IgZXhlbXBsYXIgc2FtcGxpbmcgKGRlZmF1bHQ6IFRyYWNlQmFzZWRFeGVtcGxhckZpbHRlcikKICogQHBhcmFtIE1ldHJpY0xpbWl0cyAkbGltaXRzIENhcmRpbmFsaXR5IGxpbWl0cyBmb3IgbWV0cmljIGluc3RydW1lbnRzCiAqIEBwYXJhbSBFcnJvckhhbmRsZXIgJGVycm9ySGFuZGxlciBIYW5kbGVyIGZvciBydW50aW1lIFRocm93YWJsZXMgcmFpc2VkIGJ5IHRoZSBwcm9jZXNzb3IKICov"},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":472,"slug":"telemetry","name":"telemetry","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"resource","type":[{"name":"Resource","namespace":"Flow\\Telemetry","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"tracerProvider","type":[{"name":"TracerProvider","namespace":"Flow\\Telemetry\\Tracer","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"meterProvider","type":[{"name":"MeterProvider","namespace":"Flow\\Telemetry\\Meter","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"loggerProvider","type":[{"name":"LoggerProvider","namespace":"Flow\\Telemetry\\Logger","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"errorHandler","type":[{"name":"ErrorHandler","namespace":"Flow\\Telemetry\\ErrorHandler","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Telemetry\\ErrorHandler\\ErrorLogHandler::..."}],"return_type":[{"name":"Telemetry","namespace":"Flow\\Telemetry","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIG5ldyBUZWxlbWV0cnkgaW5zdGFuY2Ugd2l0aCB0aGUgZ2l2ZW4gcHJvdmlkZXJzLgogKgogKiBJZiBwcm92aWRlcnMgYXJlIG5vdCBzcGVjaWZpZWQsIHZvaWQgcHJvdmlkZXJzIChuby1vcCkgYXJlIHVzZWQuCiAqCiAqIEBwYXJhbSBcRmxvd1xUZWxlbWV0cnlcUmVzb3VyY2UgJHJlc291cmNlIFRoZSByZXNvdXJjZSBkZXNjcmliaW5nIHRoZSBlbnRpdHkgcHJvZHVjaW5nIHRlbGVtZXRyeQogKiBAcGFyYW0gbnVsbHxUcmFjZXJQcm92aWRlciAkdHJhY2VyUHJvdmlkZXIgVGhlIHRyYWNlciBwcm92aWRlciAobnVsbCBmb3Igdm9pZC9kaXNhYmxlZCkKICogQHBhcmFtIG51bGx8TWV0ZXJQcm92aWRlciAkbWV0ZXJQcm92aWRlciBUaGUgbWV0ZXIgcHJvdmlkZXIgKG51bGwgZm9yIHZvaWQvZGlzYWJsZWQpCiAqIEBwYXJhbSBudWxsfExvZ2dlclByb3ZpZGVyICRsb2dnZXJQcm92aWRlciBUaGUgbG9nZ2VyIHByb3ZpZGVyIChudWxsIGZvciB2b2lkL2Rpc2FibGVkKQogKiBAcGFyYW0gRXJyb3JIYW5kbGVyICRlcnJvckhhbmRsZXIgSGFuZGxlciBwcm9wYWdhdGVkIHRvIGRlZmF1bHQgdm9pZCBwcm92aWRlcnMgd2hlbiBleHBsaWNpdCBvbmVzIGFyZSBub3Qgc3VwcGxpZWQKICov"},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":508,"slug":"instrumentation-scope","name":"instrumentation_scope","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"version","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'unknown'"},{"name":"schemaUrl","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"attributes","type":[{"name":"Attributes","namespace":"Flow\\Telemetry","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Telemetry\\Attributes::..."}],"return_type":[{"name":"InstrumentationScope","namespace":"Flow\\Telemetry","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBJbnN0cnVtZW50YXRpb25TY29wZS4KICoKICogQHBhcmFtIHN0cmluZyAkbmFtZSBUaGUgaW5zdHJ1bWVudGF0aW9uIHNjb3BlIG5hbWUKICogQHBhcmFtIHN0cmluZyAkdmVyc2lvbiBUaGUgaW5zdHJ1bWVudGF0aW9uIHNjb3BlIHZlcnNpb24KICogQHBhcmFtIG51bGx8c3RyaW5nICRzY2hlbWFVcmwgT3B0aW9uYWwgc2NoZW1hIFVSTAogKi8="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":525,"slug":"batching-span-processor","name":"batching_span_processor","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"exporter","type":[{"name":"Exporter","namespace":"Flow\\Telemetry\\Exporter","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"batchSize","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"512"},{"name":"errorHandler","type":[{"name":"ErrorHandler","namespace":"Flow\\Telemetry\\ErrorHandler","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Telemetry\\ErrorHandler\\ErrorLogHandler::..."}],"return_type":[{"name":"BatchingSpanProcessor","namespace":"Flow\\Telemetry\\Tracer\\Processor","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIEJhdGNoaW5nU3BhblByb2Nlc3Nvci4KICoKICogQHBhcmFtIEV4cG9ydGVyICRleHBvcnRlciBUaGUgZXhwb3J0ZXIgdG8gc2VuZCBzcGFucyB0bwogKiBAcGFyYW0gaW50ICRiYXRjaFNpemUgTnVtYmVyIG9mIHNwYW5zIHRvIGNvbGxlY3QgYmVmb3JlIGV4cG9ydGluZyAoZGVmYXVsdCA1MTIpCiAqIEBwYXJhbSBFcnJvckhhbmRsZXIgJGVycm9ySGFuZGxlciBIYW5kbGVyIGZvciBUaHJvd2FibGVzIHJhaXNlZCBieSB0aGUgZXhwb3J0ZXIKICov"},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":540,"slug":"pass-through-span-processor","name":"pass_through_span_processor","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"exporter","type":[{"name":"Exporter","namespace":"Flow\\Telemetry\\Exporter","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"errorHandler","type":[{"name":"ErrorHandler","namespace":"Flow\\Telemetry\\ErrorHandler","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Telemetry\\ErrorHandler\\ErrorLogHandler::..."}],"return_type":[{"name":"PassThroughSpanProcessor","namespace":"Flow\\Telemetry\\Tracer\\Processor","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFBhc3NUaHJvdWdoU3BhblByb2Nlc3Nvci4KICoKICogQHBhcmFtIEV4cG9ydGVyICRleHBvcnRlciBUaGUgZXhwb3J0ZXIgdG8gc2VuZCBzcGFucyB0bwogKiBAcGFyYW0gRXJyb3JIYW5kbGVyICRlcnJvckhhbmRsZXIgSGFuZGxlciBmb3IgVGhyb3dhYmxlcyByYWlzZWQgYnkgdGhlIGV4cG9ydGVyCiAqLw=="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":555,"slug":"batching-metric-processor","name":"batching_metric_processor","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"exporter","type":[{"name":"Exporter","namespace":"Flow\\Telemetry\\Exporter","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"batchSize","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"512"},{"name":"errorHandler","type":[{"name":"ErrorHandler","namespace":"Flow\\Telemetry\\ErrorHandler","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Telemetry\\ErrorHandler\\ErrorLogHandler::..."}],"return_type":[{"name":"BatchingMetricProcessor","namespace":"Flow\\Telemetry\\Meter\\Processor","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIEJhdGNoaW5nTWV0cmljUHJvY2Vzc29yLgogKgogKiBAcGFyYW0gRXhwb3J0ZXIgJGV4cG9ydGVyIFRoZSBleHBvcnRlciB0byBzZW5kIG1ldHJpY3MgdG8KICogQHBhcmFtIGludCAkYmF0Y2hTaXplIE51bWJlciBvZiBtZXRyaWNzIHRvIGNvbGxlY3QgYmVmb3JlIGV4cG9ydGluZyAoZGVmYXVsdCA1MTIpCiAqIEBwYXJhbSBFcnJvckhhbmRsZXIgJGVycm9ySGFuZGxlciBIYW5kbGVyIGZvciBUaHJvd2FibGVzIHJhaXNlZCBieSB0aGUgZXhwb3J0ZXIKICov"},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":570,"slug":"pass-through-metric-processor","name":"pass_through_metric_processor","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"exporter","type":[{"name":"Exporter","namespace":"Flow\\Telemetry\\Exporter","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"errorHandler","type":[{"name":"ErrorHandler","namespace":"Flow\\Telemetry\\ErrorHandler","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Telemetry\\ErrorHandler\\ErrorLogHandler::..."}],"return_type":[{"name":"PassThroughMetricProcessor","namespace":"Flow\\Telemetry\\Meter\\Processor","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFBhc3NUaHJvdWdoTWV0cmljUHJvY2Vzc29yLgogKgogKiBAcGFyYW0gRXhwb3J0ZXIgJGV4cG9ydGVyIFRoZSBleHBvcnRlciB0byBzZW5kIG1ldHJpY3MgdG8KICogQHBhcmFtIEVycm9ySGFuZGxlciAkZXJyb3JIYW5kbGVyIEhhbmRsZXIgZm9yIFRocm93YWJsZXMgcmFpc2VkIGJ5IHRoZSBleHBvcnRlcgogKi8="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":585,"slug":"batching-log-processor","name":"batching_log_processor","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"exporter","type":[{"name":"Exporter","namespace":"Flow\\Telemetry\\Exporter","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"batchSize","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"512"},{"name":"errorHandler","type":[{"name":"ErrorHandler","namespace":"Flow\\Telemetry\\ErrorHandler","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Telemetry\\ErrorHandler\\ErrorLogHandler::..."}],"return_type":[{"name":"BatchingLogProcessor","namespace":"Flow\\Telemetry\\Logger\\Processor","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIEJhdGNoaW5nTG9nUHJvY2Vzc29yLgogKgogKiBAcGFyYW0gRXhwb3J0ZXIgJGV4cG9ydGVyIFRoZSBleHBvcnRlciB0byBzZW5kIGxvZ3MgdG8KICogQHBhcmFtIGludCAkYmF0Y2hTaXplIE51bWJlciBvZiBsb2dzIHRvIGNvbGxlY3QgYmVmb3JlIGV4cG9ydGluZyAoZGVmYXVsdCA1MTIpCiAqIEBwYXJhbSBFcnJvckhhbmRsZXIgJGVycm9ySGFuZGxlciBIYW5kbGVyIGZvciBUaHJvd2FibGVzIHJhaXNlZCBieSB0aGUgZXhwb3J0ZXIKICov"},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":600,"slug":"pass-through-log-processor","name":"pass_through_log_processor","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"exporter","type":[{"name":"Exporter","namespace":"Flow\\Telemetry\\Exporter","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"errorHandler","type":[{"name":"ErrorHandler","namespace":"Flow\\Telemetry\\ErrorHandler","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Telemetry\\ErrorHandler\\ErrorLogHandler::..."}],"return_type":[{"name":"PassThroughLogProcessor","namespace":"Flow\\Telemetry\\Logger\\Processor","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFBhc3NUaHJvdWdoTG9nUHJvY2Vzc29yLgogKgogKiBAcGFyYW0gRXhwb3J0ZXIgJGV4cG9ydGVyIFRoZSBleHBvcnRlciB0byBzZW5kIGxvZ3MgdG8KICogQHBhcmFtIEVycm9ySGFuZGxlciAkZXJyb3JIYW5kbGVyIEhhbmRsZXIgZm9yIFRocm93YWJsZXMgcmFpc2VkIGJ5IHRoZSBleHBvcnRlcgogKi8="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":615,"slug":"pipeline-log-processor","name":"pipeline_log_processor","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"middleware","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"sink","type":[{"name":"LogSink","namespace":"Flow\\Telemetry\\Logger","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"PipelineLogProcessor","namespace":"Flow\\Telemetry\\Logger\\Processor","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFBpcGVsaW5lTG9nUHJvY2Vzc29yOiBydW4gZWFjaCBsb2cgZW50cnkgdGhyb3VnaCBhbiBvcmRlcmVkIGNoYWluIG9mCiAqIG1pZGRsZXdhcmUsIHRoZW4gZm9yd2FyZCB0aGUgc3Vydml2b3JzIHRvIGEgc2luZ2xlIHNpbmsuCiAqCiAqIEBwYXJhbSBsaXN0PExvZ01pZGRsZXdhcmU+ICRtaWRkbGV3YXJlIHJ1biBpbiBvcmRlcjsgdGhlIGZpcnN0IHRvIGRyb3AgYW4gZW50cnkgc2hvcnQtY2lyY3VpdHMgdGhlIHJlc3QKICogQHBhcmFtIExvZ1NpbmsgJHNpbmsgdGhlIHRlcm1pbmFsIHByb2Nlc3NvciB0aGF0IGV4cG9ydHMgc3Vydml2aW5nIGVudHJpZXMKICov"},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":627,"slug":"enriching-log-middleware","name":"enriching_log_middleware","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"attributes","type":[{"name":"Attributes","namespace":"Flow\\Telemetry","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"EnrichingLogMiddleware","namespace":"Flow\\Telemetry\\Logger\\Middleware","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBFbnJpY2hpbmdMb2dNaWRkbGV3YXJlIHRoYXQgbWVyZ2VzIGRlZmF1bHQgYXR0cmlidXRlcyBpbnRvIGV2ZXJ5IGxvZwogKiBlbnRyeS4gQXR0cmlidXRlcyBzZXQgYXQgdGhlIGNhbGwgc2l0ZSB3aW4gb3ZlciB0aGVzZSBkZWZhdWx0cy4KICoKICogQHBhcmFtIGFycmF5PHN0cmluZywgYXJyYXk8YXJyYXkta2V5LCBtaXhlZD58Ym9vbHxcRGF0ZVRpbWVJbnRlcmZhY2V8ZmxvYXR8aW50fHN0cmluZ3xcVGhyb3dhYmxlPnxBdHRyaWJ1dGVzICRhdHRyaWJ1dGVzCiAqLw=="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":638,"slug":"attribute-filtering-log-middleware","name":"attribute_filtering_log_middleware","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"filter","type":[{"name":"AttributeFilter","namespace":"Flow\\Telemetry\\Filter","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"AttributeFilteringLogMiddleware","namespace":"Flow\\Telemetry\\Logger\\Middleware","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBBdHRyaWJ1dGVGaWx0ZXJpbmdMb2dNaWRkbGV3YXJlIHRoYXQgZHJvcHMgbG9nIGVudHJpZXMgbWF0Y2hpbmcgdGhlIGZpbHRlci4KICoKICogQHBhcmFtIEF0dHJpYnV0ZUZpbHRlciAkZmlsdGVyIFRoZSBhdHRyaWJ1dGUgZmlsdGVyIHRvIGFwcGx5CiAqLw=="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":649,"slug":"severity-filtering-log-middleware","name":"severity_filtering_log_middleware","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"minimumSeverity","type":[{"name":"Severity","namespace":"Flow\\Telemetry\\Logger","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Telemetry\\Logger\\Severity::..."}],"return_type":[{"name":"SeverityFilteringLogMiddleware","namespace":"Flow\\Telemetry\\Logger\\Middleware","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFNldmVyaXR5RmlsdGVyaW5nTG9nTWlkZGxld2FyZSB0aGF0IGRyb3BzIGxvZyBlbnRyaWVzIGJlbG93IGEgbWluaW11bSBzZXZlcml0eS4KICoKICogQHBhcmFtIFNldmVyaXR5ICRtaW5pbXVtU2V2ZXJpdHkgTWluaW11bSBzZXZlcml0eSBsZXZlbCAoZGVmYXVsdDogSU5GTykKICov"},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":663,"slug":"attribute-rule","name":"attribute_rule","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"path","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"mode","type":[{"name":"MatchMode","namespace":"Flow\\Telemetry\\Filter","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"expected","type":[{"name":"DateTimeInterface","namespace":"","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"caseSensitive","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"}],"return_type":[{"name":"AttributeRule","namespace":"Flow\\Telemetry\\Filter","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIHNpbmdsZSBhdHRyaWJ1dGUtbWF0Y2hpbmcgcnVsZSBmb3IgYW4gQXR0cmlidXRlRmlsdGVyLgogKgogKiBAcGFyYW0gYXJyYXk8c3RyaW5nPnxzdHJpbmcgJHBhdGggYXR0cmlidXRlIHBhdGg6IGEgdG9wLWxldmVsIGtleSwgb3Igc2VnbWVudHMgZGVzY2VuZGluZyBpbnRvIG5lc3RlZCBhcnJheSB2YWx1ZXMKICogQHBhcmFtIE1hdGNoTW9kZSAkbW9kZSBjb21wYXJpc29uIGFwcGxpZWQgYmV0d2VlbiB0aGUgdmFsdWUgYXQgdGhlIHBhdGggYW5kIHRoZSBleHBlY3RlZCB2YWx1ZQogKiBAcGFyYW0gYm9vbHxEYXRlVGltZUludGVyZmFjZXxmbG9hdHxpbnR8c3RyaW5nICRleHBlY3RlZCBleHBlY3RlZCB2YWx1ZSAobXVzdCBiZSBhIHN0cmluZyBmb3IgdGhlIHBhdHRlcm4gbW9kZXMpCiAqIEBwYXJhbSBib29sICRjYXNlU2Vuc2l0aXZlIGFwcGxpZXMgdG8gdGhlIHN1YnN0cmluZyBtb2RlcyBvbmx5IChTVEFSVFNfV0lUSCwgRU5EU19XSVRILCBDT05UQUlOUykKICov"},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":676,"slug":"all","name":"all","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"matchers","type":[{"name":"Matcher","namespace":"Flow\\Telemetry\\Filter","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"All","namespace":"Flow\\Telemetry\\Filter","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENvbWJpbmUgbWF0Y2hlcnMgc28gdGhhdCBldmVyeSBvbmUgbXVzdCBtYXRjaCAobG9naWNhbCBBTkQpLgogKi8="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":685,"slug":"any","name":"any","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"matchers","type":[{"name":"Matcher","namespace":"Flow\\Telemetry\\Filter","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"Any","namespace":"Flow\\Telemetry\\Filter","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENvbWJpbmUgbWF0Y2hlcnMgc28gdGhhdCBhdCBsZWFzdCBvbmUgbXVzdCBtYXRjaCAobG9naWNhbCBPUikuCiAqLw=="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":694,"slug":"not","name":"not","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"matcher","type":[{"name":"Matcher","namespace":"Flow\\Telemetry\\Filter","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Not","namespace":"Flow\\Telemetry\\Filter","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIE5lZ2F0ZSBhIG1hdGNoZXIgKGxvZ2ljYWwgTk9UKS4KICov"},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":713,"slug":"attribute-filter","name":"attribute_filter","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"matcher","type":[{"name":"Matcher","namespace":"Flow\\Telemetry\\Filter","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"exclude","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"sources","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[...]"},{"name":"cacheDir","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"cacheDirPermissions","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"448"}],"return_type":[{"name":"AttributeFilter","namespace":"Flow\\Telemetry\\Filter","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBBdHRyaWJ1dGVGaWx0ZXIgZnJvbSBhIG1hdGNoZXIuCiAqCiAqIEBwYXJhbSBNYXRjaGVyICRtYXRjaGVyIHRoZSBtYXRjaGVyIHRvIGV2YWx1YXRlIGFnYWluc3QgYSBzaWduYWwncyBhdHRyaWJ1dGVzIChjb21wb3NlIHdpdGggYWxsKCksIGFueSgpLCBub3QoKSkKICogQHBhcmFtIGJvb2wgJGV4Y2x1ZGUgd2hlbiB0cnVlIChkZWZhdWx0KSBhIG1hdGNoIGRyb3BzIHRoZSBzaWduYWw7IHdoZW4gZmFsc2Ugb25seSBtYXRjaGluZyBzaWduYWxzIGFyZSBrZXB0CiAqIEBwYXJhbSBsaXN0PEF0dHJpYnV0ZVNvdXJjZT4gJHNvdXJjZXMgd2hpY2ggYXR0cmlidXRlIHNldHMgdG8gaW5zcGVjdCAoc2lnbmFsLCByZXNvdXJjZSBhbmQvb3Igc2NvcGUpOyB0aGUgbWF0Y2hlciBpcwogKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9SLWNvbWJpbmVkIGFjcm9zcyB0aGVtLCBkZWZhdWx0aW5nIHRvIHRoZSBzaWduYWwncyBvd24gYXR0cmlidXRlcwogKiBAcGFyYW0gbnVsbHxzdHJpbmcgJGNhY2hlRGlyIGRpcmVjdG9yeSBmb3IgdGhlIGdlbmVyYXRlZCBtYXRjaGVyIGZpbGUgKGRlZmF1bHRzIHRvIHRoZSBzeXN0ZW0gdGVtcCBkaXJlY3RvcnkpLiBJdCBpcwogKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGByZXF1aXJlYGQsIHNvIGl0IE1VU1QgYmUgdHJ1c3RlZCAtIG5vdCB3cml0YWJsZSBieSB1bnRydXN0ZWQgdXNlcnMuIFByZWZlciBhbgogKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGxpY2F0aW9uLXByaXZhdGUgZGlyZWN0b3J5IG92ZXIgdGhlIHNoYXJlZCBzeXN0ZW0gdGVtcCBpbiBtdWx0aS10ZW5hbnQgZW52aXJvbm1lbnRzLgogKiBAcGFyYW0gaW50ICRjYWNoZURpclBlcm1pc3Npb25zIG1vZGUgYXBwbGllZCB3aGVuIHRoZSBjYWNoZSBkaXJlY3RvcnkgaXMgY3JlYXRlZCAob2N0YWwsIHN1YmplY3QgdG8gdW1hc2s7IGRlZmF1bHRzCiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG8gMDcwMCAtIG93bmVyIG9ubHksIHNpbmNlIHRoZSBkaXJlY3RvcnkgaG9sZHMgYHJlcXVpcmVgZCBQSFApCiAqLw=="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":730,"slug":"attribute-filtering-metric-processor","name":"attribute_filtering_metric_processor","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"processor","type":[{"name":"MetricProcessor","namespace":"Flow\\Telemetry\\Meter","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"filter","type":[{"name":"AttributeFilter","namespace":"Flow\\Telemetry\\Filter","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"AttributeFilteringMetricProcessor","namespace":"Flow\\Telemetry\\Meter\\Processor","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBBdHRyaWJ1dGVGaWx0ZXJpbmdNZXRyaWNQcm9jZXNzb3IuCiAqCiAqIEBwYXJhbSBNZXRyaWNQcm9jZXNzb3IgJHByb2Nlc3NvciBUaGUgcHJvY2Vzc29yIHRvIHdyYXAKICogQHBhcmFtIEF0dHJpYnV0ZUZpbHRlciAkZmlsdGVyIFRoZSBhdHRyaWJ1dGUgZmlsdGVyIHRvIGFwcGx5CiAqLw=="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":744,"slug":"attribute-filtering-span-processor","name":"attribute_filtering_span_processor","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"processor","type":[{"name":"SpanProcessor","namespace":"Flow\\Telemetry\\Tracer","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"filter","type":[{"name":"AttributeFilter","namespace":"Flow\\Telemetry\\Filter","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"AttributeFilteringSpanProcessor","namespace":"Flow\\Telemetry\\Tracer\\Processor","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBBdHRyaWJ1dGVGaWx0ZXJpbmdTcGFuUHJvY2Vzc29yLgogKgogKiBAcGFyYW0gU3BhblByb2Nlc3NvciAkcHJvY2Vzc29yIFRoZSBwcm9jZXNzb3IgdG8gd3JhcAogKiBAcGFyYW0gQXR0cmlidXRlRmlsdGVyICRmaWx0ZXIgVGhlIGF0dHJpYnV0ZSBmaWx0ZXIgdG8gYXBwbHkKICov"},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":763,"slug":"console-exporter","name":"console_exporter","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"colors","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"maxLogBodyLength","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"100"},{"name":"logOptions","type":[{"name":"ConsoleLogOptions","namespace":"Flow\\Telemetry\\Provider\\Console","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Telemetry\\Provider\\Console\\ConsoleLogOptions::..."},{"name":"metricOptions","type":[{"name":"ConsoleMetricOptions","namespace":"Flow\\Telemetry\\Provider\\Console","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Telemetry\\Provider\\Console\\ConsoleMetricOptions::..."},{"name":"spanOptions","type":[{"name":"ConsoleSpanOptions","namespace":"Flow\\Telemetry\\Provider\\Console","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Telemetry\\Provider\\Console\\ConsoleSpanOptions::..."}],"return_type":[{"name":"ConsoleExporter","namespace":"Flow\\Telemetry\\Provider\\Console","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIHVuaWZpZWQgQ29uc29sZUV4cG9ydGVyIGZvciBsb2dzLCBtZXRyaWNzLCBhbmQgc3BhbnMuCiAqCiAqIE91dHB1dHMgdGVsZW1ldHJ5IHRvIHRoZSBjb25zb2xlIHdpdGggQVNDSUkgdGFibGUgZm9ybWF0dGluZyBhbmQgb3B0aW9uYWwgQU5TSSBjb2xvcnMuCiAqCiAqIEBwYXJhbSBib29sICRjb2xvcnMgV2hldGhlciB0byB1c2UgQU5TSSBjb2xvcnMgKGRlZmF1bHQ6IHRydWUpCiAqIEBwYXJhbSBudWxsfGludCAkbWF4TG9nQm9keUxlbmd0aCBNYXhpbXVtIGxlbmd0aCBmb3IgbG9nIGJvZHkrYXR0cmlidXRlcyBjb2x1bW4gKG51bGwgPSBubyBsaW1pdCkKICogQHBhcmFtIENvbnNvbGVMb2dPcHRpb25zICRsb2dPcHRpb25zIERpc3BsYXkgb3B0aW9ucyBmb3IgbG9nIHJlY29yZHMKICogQHBhcmFtIENvbnNvbGVNZXRyaWNPcHRpb25zICRtZXRyaWNPcHRpb25zIERpc3BsYXkgb3B0aW9ucyBmb3IgbWV0cmljcwogKiBAcGFyYW0gQ29uc29sZVNwYW5PcHRpb25zICRzcGFuT3B0aW9ucyBEaXNwbGF5IG9wdGlvbnMgZm9yIHNwYW5zCiAqLw=="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":777,"slug":"console-span-options","name":"console_span_options","namespace":"Flow\\Telemetry\\DSL","parameters":[],"return_type":[{"name":"ConsoleSpanOptions","namespace":"Flow\\Telemetry\\Provider\\Console","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBDb25zb2xlU3Bhbk9wdGlvbnMgd2l0aCBhbGwgZGlzcGxheSBvcHRpb25zIGVuYWJsZWQgKGRlZmF1bHQgYmVoYXZpb3IpLgogKi8="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":786,"slug":"console-span-options-minimal","name":"console_span_options_minimal","namespace":"Flow\\Telemetry\\DSL","parameters":[],"return_type":[{"name":"ConsoleSpanOptions","namespace":"Flow\\Telemetry\\Provider\\Console","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBDb25zb2xlU3Bhbk9wdGlvbnMgd2l0aCBtaW5pbWFsIGRpc3BsYXkgKGxlZ2FjeSBjb21wYWN0IGZvcm1hdCkuCiAqLw=="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":795,"slug":"console-log-options","name":"console_log_options","namespace":"Flow\\Telemetry\\DSL","parameters":[],"return_type":[{"name":"ConsoleLogOptions","namespace":"Flow\\Telemetry\\Provider\\Console","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBDb25zb2xlTG9nT3B0aW9ucyB3aXRoIGFsbCBkaXNwbGF5IG9wdGlvbnMgZW5hYmxlZCAoZGVmYXVsdCBiZWhhdmlvcikuCiAqLw=="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":804,"slug":"console-log-options-minimal","name":"console_log_options_minimal","namespace":"Flow\\Telemetry\\DSL","parameters":[],"return_type":[{"name":"ConsoleLogOptions","namespace":"Flow\\Telemetry\\Provider\\Console","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBDb25zb2xlTG9nT3B0aW9ucyB3aXRoIG1pbmltYWwgZGlzcGxheSAobGVnYWN5IGNvbXBhY3QgZm9ybWF0KS4KICov"},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":813,"slug":"console-metric-options","name":"console_metric_options","namespace":"Flow\\Telemetry\\DSL","parameters":[],"return_type":[{"name":"ConsoleMetricOptions","namespace":"Flow\\Telemetry\\Provider\\Console","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBDb25zb2xlTWV0cmljT3B0aW9ucyB3aXRoIGFsbCBkaXNwbGF5IG9wdGlvbnMgZW5hYmxlZCAoZGVmYXVsdCBiZWhhdmlvcikuCiAqLw=="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":822,"slug":"console-metric-options-minimal","name":"console_metric_options_minimal","namespace":"Flow\\Telemetry\\DSL","parameters":[],"return_type":[{"name":"ConsoleMetricOptions","namespace":"Flow\\Telemetry\\Provider\\Console","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBDb25zb2xlTWV0cmljT3B0aW9ucyB3aXRoIG1pbmltYWwgZGlzcGxheSAobGVnYWN5IGNvbXBhY3QgZm9ybWF0KS4KICov"},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":831,"slug":"always-on-exemplar-filter","name":"always_on_exemplar_filter","namespace":"Flow\\Telemetry\\DSL","parameters":[],"return_type":[{"name":"AlwaysOnExemplarFilter","namespace":"Flow\\Telemetry\\Meter\\Exemplar","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBBbHdheXNPbkV4ZW1wbGFyRmlsdGVyLgogKi8="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":840,"slug":"always-off-exemplar-filter","name":"always_off_exemplar_filter","namespace":"Flow\\Telemetry\\DSL","parameters":[],"return_type":[{"name":"AlwaysOffExemplarFilter","namespace":"Flow\\Telemetry\\Meter\\Exemplar","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBBbHdheXNPZmZFeGVtcGxhckZpbHRlci4KICov"},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":849,"slug":"trace-based-exemplar-filter","name":"trace_based_exemplar_filter","namespace":"Flow\\Telemetry\\DSL","parameters":[],"return_type":[{"name":"TraceBasedExemplarFilter","namespace":"Flow\\Telemetry\\Meter\\Exemplar","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFRyYWNlQmFzZWRFeGVtcGxhckZpbHRlci4KICov"},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":858,"slug":"always-on-sampler","name":"always_on_sampler","namespace":"Flow\\Telemetry\\DSL","parameters":[],"return_type":[{"name":"AlwaysOnSampler","namespace":"Flow\\Telemetry\\Tracer\\Sampler","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBBbHdheXNPblNhbXBsZXIuIFJlY29yZHMgYW5kIHNhbXBsZXMgZXZlcnkgc3Bhbi4KICov"},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":867,"slug":"always-off-sampler","name":"always_off_sampler","namespace":"Flow\\Telemetry\\DSL","parameters":[],"return_type":[{"name":"AlwaysOffSampler","namespace":"Flow\\Telemetry\\Tracer\\Sampler","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBBbHdheXNPZmZTYW1wbGVyLiBEcm9wcyBldmVyeSBzcGFuLgogKi8="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":878,"slug":"trace-id-ratio-based-sampler","name":"trace_id_ratio_based_sampler","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"ratio","type":[{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"TraceIdRatioBasedSampler","namespace":"Flow\\Telemetry\\Tracer\\Sampler","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFRyYWNlSWRSYXRpb0Jhc2VkU2FtcGxlci4gU2FtcGxlcyBhIGRldGVybWluaXN0aWMgZnJhY3Rpb24gb2YgdHJhY2VzLgogKgogKiBAcGFyYW0gZmxvYXQgJHJhdGlvIFNhbXBsaW5nIHByb2JhYmlsaXR5IGJldHdlZW4gMC4wIGFuZCAxLjAKICov"},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":890,"slug":"parent-based-sampler","name":"parent_based_sampler","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"root","type":[{"name":"Sampler","namespace":"Flow\\Telemetry\\Tracer\\Sampler","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Telemetry\\Tracer\\Sampler\\AlwaysOnSampler::..."}],"return_type":[{"name":"ParentBasedSampler","namespace":"Flow\\Telemetry\\Tracer\\Sampler","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFBhcmVudEJhc2VkU2FtcGxlci4gSG9ub3JzIHRoZSBwYXJlbnQgc3BhbidzIHNhbXBsaW5nIGRlY2lzaW9uLCBmYWxsaW5nCiAqIGJhY2sgdG8gdGhlIHJvb3Qgc2FtcGxlciBmb3Igc3BhbnMgd2l0aG91dCBhIHBhcmVudC4KICoKICogQHBhcmFtIFNhbXBsZXIgJHJvb3QgU2FtcGxlciB1c2VkIGZvciByb290IHNwYW5zIChubyBwYXJlbnQpCiAqLw=="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":906,"slug":"attribute-matching-sampler","name":"attribute_matching_sampler","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"filter","type":[{"name":"AttributeFilter","namespace":"Flow\\Telemetry\\Filter","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"delegate","type":[{"name":"Sampler","namespace":"Flow\\Telemetry\\Tracer\\Sampler","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Telemetry\\Tracer\\Sampler\\AlwaysOnSampler::..."}],"return_type":[{"name":"AttributeMatchingSampler","namespace":"Flow\\Telemetry\\Tracer\\Sampler","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBBdHRyaWJ1dGVNYXRjaGluZ1NhbXBsZXIuIERyb3BzIHNwYW5zIHdob3NlIHN0YXJ0LXRpbWUgYXR0cmlidXRlcyBtYXRjaAogKiB0aGUgZmlsdGVyIChvciBrZWVwcyBPTkxZIG1hdGNoaW5nIHNwYW5zIHdoZW4gdGhlIGZpbHRlcidzIGV4Y2x1ZGUgaXMgZmFsc2UpLCBhbmQKICogZGVmZXJzIGFsbCBvdGhlciBzcGFucyB0byB0aGUgZGVsZWdhdGUgc2FtcGxlci4KICoKICogT25seSBhdHRyaWJ1dGVzIGF2YWlsYWJsZSBhdCBzcGFuIHN0YXJ0IGFyZSB2aXNpYmxlOyBhdHRyaWJ1dGVzIGFkZGVkIGxhdGVyIGFyZSBub3QuCiAqCiAqIEBwYXJhbSBBdHRyaWJ1dGVGaWx0ZXIgJGZpbHRlciBUaGUgYXR0cmlidXRlIGZpbHRlciBldmFsdWF0ZWQgYWdhaW5zdCB0aGUgc3BhbidzIHN0YXJ0IGF0dHJpYnV0ZXMKICogQHBhcmFtIFNhbXBsZXIgJGRlbGVnYXRlIFNhbXBsZXIgdGhhdCBkZWNpZGVzIHNwYW5zIHdoaWNoIGRvIG5vdCBtYXRjaCAoZGVmYXVsdDogQWx3YXlzT25TYW1wbGVyKQogKi8="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":920,"slug":"propagation-context","name":"propagation_context","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"spanContext","type":[{"name":"SpanContext","namespace":"Flow\\Telemetry\\Tracer","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"baggage","type":[{"name":"Baggage","namespace":"Flow\\Telemetry\\Context","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"PropagationContext","namespace":"Flow\\Telemetry\\Propagation","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFByb3BhZ2F0aW9uQ29udGV4dC4KICoKICogQHBhcmFtIG51bGx8U3BhbkNvbnRleHQgJHNwYW5Db250ZXh0IE9wdGlvbmFsIHNwYW4gY29udGV4dAogKiBAcGFyYW0gbnVsbHxCYWdnYWdlICRiYWdnYWdlIE9wdGlvbmFsIGJhZ2dhZ2UKICov"},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":931,"slug":"array-carrier","name":"array_carrier","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"data","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"}],"return_type":[{"name":"ArrayCarrier","namespace":"Flow\\Telemetry\\Propagation","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBBcnJheUNhcnJpZXIuCiAqCiAqIEBwYXJhbSBhcnJheTxzdHJpbmcsIHN0cmluZz4gJGRhdGEgSW5pdGlhbCBjYXJyaWVyIGRhdGEKICov"},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":940,"slug":"superglobal-carrier","name":"superglobal_carrier","namespace":"Flow\\Telemetry\\DSL","parameters":[],"return_type":[{"name":"SuperglobalCarrier","namespace":"Flow\\Telemetry\\Propagation","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFN1cGVyZ2xvYmFsQ2Fycmllci4KICov"},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":949,"slug":"w3c-trace-context","name":"w3c_trace_context","namespace":"Flow\\Telemetry\\DSL","parameters":[],"return_type":[{"name":"W3CTraceContext","namespace":"Flow\\Telemetry\\Propagation","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFczQ1RyYWNlQ29udGV4dCBwcm9wYWdhdG9yLgogKi8="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":958,"slug":"w3c-baggage","name":"w3c_baggage","namespace":"Flow\\Telemetry\\DSL","parameters":[],"return_type":[{"name":"W3CBaggage","namespace":"Flow\\Telemetry\\Propagation","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFczQ0JhZ2dhZ2UgcHJvcGFnYXRvci4KICov"},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":969,"slug":"composite-propagator","name":"composite_propagator","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"propagators","type":[{"name":"Propagator","namespace":"Flow\\Telemetry\\Propagation","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"CompositePropagator","namespace":"Flow\\Telemetry\\Propagation","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIENvbXBvc2l0ZVByb3BhZ2F0b3IuCiAqCiAqIEBwYXJhbSBQcm9wYWdhdG9yIC4uLiRwcm9wYWdhdG9ycyBUaGUgcHJvcGFnYXRvcnMgdG8gY29tYmluZQogKi8="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":980,"slug":"chain-detector","name":"chain_detector","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"detectors","type":[{"name":"ResourceDetector","namespace":"Flow\\Telemetry\\Resource","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"ChainDetector","namespace":"Flow\\Telemetry\\Resource\\Detector","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIENoYWluRGV0ZWN0b3IuCiAqCiAqIEBwYXJhbSBSZXNvdXJjZURldGVjdG9yIC4uLiRkZXRlY3RvcnMgVGhlIGRldGVjdG9ycyB0byBjaGFpbgogKi8="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":989,"slug":"os-detector","name":"os_detector","namespace":"Flow\\Telemetry\\DSL","parameters":[],"return_type":[{"name":"OsDetector","namespace":"Flow\\Telemetry\\Resource\\Detector","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBPc0RldGVjdG9yLgogKi8="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":998,"slug":"host-detector","name":"host_detector","namespace":"Flow\\Telemetry\\DSL","parameters":[],"return_type":[{"name":"HostDetector","namespace":"Flow\\Telemetry\\Resource\\Detector","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIEhvc3REZXRlY3Rvci4KICov"},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":1007,"slug":"process-detector","name":"process_detector","namespace":"Flow\\Telemetry\\DSL","parameters":[],"return_type":[{"name":"ProcessDetector","namespace":"Flow\\Telemetry\\Resource\\Detector","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFByb2Nlc3NEZXRlY3Rvci4KICov"},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":1016,"slug":"environment-detector","name":"environment_detector","namespace":"Flow\\Telemetry\\DSL","parameters":[],"return_type":[{"name":"EnvironmentDetector","namespace":"Flow\\Telemetry\\Resource\\Detector","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBFbnZpcm9ubWVudERldGVjdG9yLgogKi8="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":1025,"slug":"composer-detector","name":"composer_detector","namespace":"Flow\\Telemetry\\DSL","parameters":[],"return_type":[{"name":"ComposerDetector","namespace":"Flow\\Telemetry\\Resource\\Detector","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIENvbXBvc2VyRGV0ZWN0b3IuCiAqLw=="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":1037,"slug":"git-detector","name":"git_detector","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"workingDirectory","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"gitBinary","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'git'"}],"return_type":[{"name":"GitDetector","namespace":"Flow\\Telemetry\\Resource\\Detector","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIEdpdERldGVjdG9yLgogKgogKiBAcGFyYW0gbnVsbHxzdHJpbmcgJHdvcmtpbmdEaXJlY3RvcnkgRGlyZWN0b3J5IHRvIHJ1biBnaXQgaW4gKGRlZmF1bHQ6IGN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnkpCiAqIEBwYXJhbSBzdHJpbmcgJGdpdEJpbmFyeSBQYXRoIHRvIHRoZSBnaXQgYmluYXJ5IChkZWZhdWx0OiAiZ2l0IiwgcmVzb2x2ZWQgZnJvbSAkUEFUSCkKICov"},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":1048,"slug":"manual-detector","name":"manual_detector","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"attributes","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ManualDetector","namespace":"Flow\\Telemetry\\Resource\\Detector","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIE1hbnVhbERldGVjdG9yLgogKgogKiBAcGFyYW0gYXJyYXk8c3RyaW5nLCBhcnJheTxhcnJheS1rZXksIG1peGVkPnxib29sfFxEYXRlVGltZUludGVyZmFjZXxmbG9hdHxpbnR8c3RyaW5nfFxUaHJvd2FibGU+ICRhdHRyaWJ1dGVzIFJlc291cmNlIGF0dHJpYnV0ZXMKICov"},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":1060,"slug":"caching-detector","name":"caching_detector","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"detector","type":[{"name":"ResourceDetector","namespace":"Flow\\Telemetry\\Resource","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"cachePath","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"CachingDetector","namespace":"Flow\\Telemetry\\Resource\\Detector","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIENhY2hpbmdEZXRlY3Rvci4KICoKICogQHBhcmFtIFJlc291cmNlRGV0ZWN0b3IgJGRldGVjdG9yIFRoZSBkZXRlY3RvciB0byB3cmFwCiAqIEBwYXJhbSBudWxsfHN0cmluZyAkY2FjaGVQYXRoIENhY2hlIGZpbGUgcGF0aCAoZGVmYXVsdDogc3lzX2dldF90ZW1wX2RpcigpL2Zsb3dfdGVsZW1ldHJ5X3Jlc291cmNlLmNhY2hlKQogKi8="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":1071,"slug":"resource-detector","name":"resource_detector","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"detectors","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"}],"return_type":[{"name":"ChainDetector","namespace":"Flow\\Telemetry\\Resource\\Detector","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIHJlc291cmNlIGRldGVjdG9yIGNoYWluLgogKgogKiBAcGFyYW0gYXJyYXk8UmVzb3VyY2VEZXRlY3Rvcj4gJGRldGVjdG9ycyBPcHRpb25hbCBjdXN0b20gZGV0ZWN0b3JzIChlbXB0eSA9IHVzZSBkZWZhdWx0cykKICov"},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":1090,"slug":"error-log-handler","name":"error_log_handler","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"messageType","type":[{"name":"ErrorLogMessageType","namespace":"Flow\\Telemetry\\ErrorHandler","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Telemetry\\ErrorHandler\\ErrorLogMessageType::..."},{"name":"expandNewlines","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"messagePrefix","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'[flow-telemetry]'"}],"return_type":[{"name":"ErrorLogHandler","namespace":"Flow\\Telemetry\\ErrorHandler","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSB0aGUgZGVmYXVsdCBFcnJvckxvZ0hhbmRsZXIuIFdyaXRlcyB2aWEgUEhQJ3MgZXJyb3JfbG9nKCkuCiAqLw=="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":1103,"slug":"stream-error-handler","name":"stream_error_handler","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"destination","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"filePermissions","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"420"},{"name":"createDirectories","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"messagePrefix","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'[flow-telemetry]'"}],"return_type":[{"name":"StreamHandler","namespace":"Flow\\Telemetry\\ErrorHandler","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFN0cmVhbUhhbmRsZXIuIEFwcGVuZHMgZm9ybWF0dGVkIFRocm93YWJsZXMgKG9uZSBwZXIgbGluZSkgdG8gYSBmaWxlCiAqIHBhdGggb3IgcGhwOi8vIHN0cmVhbSB3cmFwcGVyLgogKi8="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":1116,"slug":"syslog-error-handler","name":"syslog_error_handler","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"ident","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'flow-telemetry'"},{"name":"facility","type":[{"name":"SyslogFacility","namespace":"Flow\\Telemetry\\ErrorHandler","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Telemetry\\ErrorHandler\\SyslogFacility::..."},{"name":"logOpts","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"1"},{"name":"severity","type":[{"name":"SyslogSeverity","namespace":"Flow\\Telemetry\\ErrorHandler","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Telemetry\\ErrorHandler\\SyslogSeverity::..."}],"return_type":[{"name":"SyslogHandler","namespace":"Flow\\Telemetry\\ErrorHandler","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFN5c2xvZ0hhbmRsZXIuIFdyaXRlcyB2aWEgb3BlbmxvZy9zeXNsb2cvY2xvc2Vsb2cuCiAqLw=="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":1129,"slug":"udp-syslog-error-handler","name":"udp_syslog_error_handler","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"host","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"port","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"514"},{"name":"ident","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'flow-telemetry'"},{"name":"facility","type":[{"name":"SyslogFacility","namespace":"Flow\\Telemetry\\ErrorHandler","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Telemetry\\ErrorHandler\\SyslogFacility::..."},{"name":"severity","type":[{"name":"SyslogSeverity","namespace":"Flow\\Telemetry\\ErrorHandler","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Telemetry\\ErrorHandler\\SyslogSeverity::..."}],"return_type":[{"name":"UdpSyslogHandler","namespace":"Flow\\Telemetry\\ErrorHandler","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFVkcFN5c2xvZ0hhbmRsZXIuIFNlbmRzIFJGQyA1NDI0LXN0eWxlIHN5c2xvZyBmcmFtZXMgb3ZlciBVRFAuCiAqLw=="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":1143,"slug":"composite-error-handler","name":"composite_error_handler","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"handlers","type":[{"name":"ErrorHandler","namespace":"Flow\\Telemetry\\ErrorHandler","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"CompositeErrorHandler","namespace":"Flow\\Telemetry\\ErrorHandler","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEZhbiBlcnJvcnMgb3V0IHRvIG11bHRpcGxlIGhhbmRsZXJzLgogKi8="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":1152,"slug":"null-error-handler","name":"null_error_handler","namespace":"Flow\\Telemetry\\DSL","parameters":[],"return_type":[{"name":"NullErrorHandler","namespace":"Flow\\Telemetry\\ErrorHandler","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIERpc2NhcmQgZXZlcnkgZXJyb3IuIFVzZSBvbmx5IGluIHRlc3RzIG9yIGZvciBleHBsaWNpdCBzaWxlbmNlLgogKi8="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":1163,"slug":"url-sanitizer","name":"url_sanitizer","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"sensitiveQueryParameters","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[...]"}],"return_type":[{"name":"UrlSanitizer","namespace":"Flow\\Telemetry\\Sanitizer","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFVybFNhbml0aXplci4gVGhlIGdpdmVuIGxpc3QgcmVwbGFjZXMgdGhlIE9wZW5UZWxlbWV0cnkgc2VtYW50aWMtY29udmVudGlvbiBkZWZhdWx0IGxpc3QuCiAqCiAqIEBwYXJhbSBsaXN0PHN0cmluZz4gJHNlbnNpdGl2ZVF1ZXJ5UGFyYW1ldGVycyBDYXNlLXNlbnNpdGl2ZSBxdWVyeSBwYXJhbWV0ZXIga2V5cyB3aG9zZSB2YWx1ZXMgYXJlIHJlcGxhY2VkIHdpdGggUkVEQUNURUQKICov"},{"repository_path":"src\/lib\/azure-sdk\/src\/Flow\/Azure\/SDK\/DSL\/functions.php","start_line_in_file":29,"slug":"azurite-url-factory","name":"azurite_url_factory","namespace":"Flow\\Azure\\SDK\\DSL","parameters":[{"name":"host","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'localhost'"},{"name":"port","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'10000'"},{"name":"secure","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"AzuriteURLFactory","namespace":"Flow\\Azure\\SDK\\BlobService\\URLFactory","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"AZURE_SDK","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/azure-sdk\/src\/Flow\/Azure\/SDK\/DSL\/functions.php","start_line_in_file":38,"slug":"azure-shared-key-authorization-factory","name":"azure_shared_key_authorization_factory","namespace":"Flow\\Azure\\SDK\\DSL","parameters":[{"name":"account","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"key","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"SharedKeyFactory","namespace":"Flow\\Azure\\SDK\\AuthorizationFactory","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"AZURE_SDK","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/azure-sdk\/src\/Flow\/Azure\/SDK\/DSL\/functions.php","start_line_in_file":48,"slug":"azure-blob-service-config","name":"azure_blob_service_config","namespace":"Flow\\Azure\\SDK\\DSL","parameters":[{"name":"account","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"container","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Configuration","namespace":"Flow\\Azure\\SDK\\BlobService","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"AZURE_SDK","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/azure-sdk\/src\/Flow\/Azure\/SDK\/DSL\/functions.php","start_line_in_file":54,"slug":"azure-url-factory","name":"azure_url_factory","namespace":"Flow\\Azure\\SDK\\DSL","parameters":[{"name":"host","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'blob.core.windows.net'"}],"return_type":[{"name":"AzureURLFactory","namespace":"Flow\\Azure\\SDK\\BlobService\\URLFactory","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"AZURE_SDK","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/azure-sdk\/src\/Flow\/Azure\/SDK\/DSL\/functions.php","start_line_in_file":60,"slug":"azure-http-factory","name":"azure_http_factory","namespace":"Flow\\Azure\\SDK\\DSL","parameters":[{"name":"request_factory","type":[{"name":"RequestFactoryInterface","namespace":"Psr\\Http\\Message","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"stream_factory","type":[{"name":"StreamFactoryInterface","namespace":"Psr\\Http\\Message","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"HttpFactory","namespace":"Flow\\Azure\\SDK","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"AZURE_SDK","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/azure-sdk\/src\/Flow\/Azure\/SDK\/DSL\/functions.php","start_line_in_file":68,"slug":"azure-blob-service","name":"azure_blob_service","namespace":"Flow\\Azure\\SDK\\DSL","parameters":[{"name":"configuration","type":[{"name":"Configuration","namespace":"Flow\\Azure\\SDK\\BlobService","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"azure_authorization_factory","type":[{"name":"AuthorizationFactory","namespace":"Flow\\Azure\\SDK","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"client","type":[{"name":"ClientInterface","namespace":"Psr\\Http\\Client","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"azure_http_factory","type":[{"name":"HttpFactory","namespace":"Flow\\Azure\\SDK","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"azure_url_factory","type":[{"name":"URLFactory","namespace":"Flow\\Azure\\SDK","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"logger","type":[{"name":"LoggerInterface","namespace":"Psr\\Log","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"BlobServiceInterface","namespace":"Flow\\Azure\\SDK","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"AZURE_SDK","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/bridge\/filesystem\/azure\/src\/Flow\/Filesystem\/Bridge\/Azure\/DSL\/functions.php","start_line_in_file":16,"slug":"azure-filesystem-options","name":"azure_filesystem_options","namespace":"Flow\\Filesystem\\Bridge\\Azure\\DSL","parameters":[],"return_type":[{"name":"Options","namespace":"Flow\\Filesystem\\Bridge\\Azure","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"AZURE_FILESYSTEM","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/bridge\/filesystem\/azure\/src\/Flow\/Filesystem\/Bridge\/Azure\/DSL\/functions.php","start_line_in_file":22,"slug":"azure-filesystem","name":"azure_filesystem","namespace":"Flow\\Filesystem\\Bridge\\Azure\\DSL","parameters":[{"name":"blob_service","type":[{"name":"BlobServiceInterface","namespace":"Flow\\Azure\\SDK","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"options","type":[{"name":"Options","namespace":"Flow\\Filesystem\\Bridge\\Azure","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Filesystem\\Bridge\\Azure\\Options::..."},{"name":"protocol","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'azure-blob'"}],"return_type":[{"name":"AzureBlobFilesystem","namespace":"Flow\\Filesystem\\Bridge\\Azure","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"AZURE_FILESYSTEM","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/bridge\/filesystem\/async-aws\/src\/Flow\/Filesystem\/Bridge\/AsyncAWS\/DSL\/functions.php","start_line_in_file":20,"slug":"aws-s3-client","name":"aws_s3_client","namespace":"Flow\\Filesystem\\Bridge\\AsyncAWS\\DSL","parameters":[{"name":"configuration","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"S3Client","namespace":"AsyncAws\\S3","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"S3_FILESYSTEM","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheTxDb25maWd1cmF0aW9uOjpPUFRJT05fKiwgbnVsbHxzdHJpbmc+ICRjb25maWd1cmF0aW9uIC0gZm9yIGRldGFpbHMgcGxlYXNlIHNlZSBodHRwczovL2FzeW5jLWF3cy5jb20vY2xpZW50cy9zMy5odG1sCiAqLw=="},{"repository_path":"src\/bridge\/filesystem\/async-aws\/src\/Flow\/Filesystem\/Bridge\/AsyncAWS\/DSL\/functions.php","start_line_in_file":26,"slug":"aws-s3-filesystem","name":"aws_s3_filesystem","namespace":"Flow\\Filesystem\\Bridge\\AsyncAWS\\DSL","parameters":[{"name":"bucket","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"s3Client","type":[{"name":"S3Client","namespace":"AsyncAws\\S3","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"options","type":[{"name":"Options","namespace":"Flow\\Filesystem\\Bridge\\AsyncAWS","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Filesystem\\Bridge\\AsyncAWS\\Options::..."},{"name":"protocol","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'aws-s3'"}],"return_type":[{"name":"AsyncAWSS3Filesystem","namespace":"Flow\\Filesystem\\Bridge\\AsyncAWS","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"S3_FILESYSTEM","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/bridge\/filesystem\/sftp\/src\/Flow\/Filesystem\/Bridge\/SFTP\/DSL\/functions.php","start_line_in_file":24,"slug":"sftp-client","name":"sftp_client","namespace":"Flow\\Filesystem\\Bridge\\SFTP\\DSL","parameters":[{"name":"host","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"user","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"credential","type":[{"name":"PrivateKey","namespace":"phpseclib4\\Crypt\\Common","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"port","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"22"}],"return_type":[{"name":"SFTP","namespace":"phpseclib4\\Net","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"SFTP_FILESYSTEM","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEB0aHJvd3MgUnVudGltZUV4Y2VwdGlvbgogKi8="},{"repository_path":"src\/bridge\/filesystem\/sftp\/src\/Flow\/Filesystem\/Bridge\/SFTP\/DSL\/functions.php","start_line_in_file":46,"slug":"sftp-filesystem","name":"sftp_filesystem","namespace":"Flow\\Filesystem\\Bridge\\SFTP\\DSL","parameters":[{"name":"sftp","type":[{"name":"SFTP","namespace":"phpseclib4\\Net","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"options","type":[{"name":"Options","namespace":"Flow\\Filesystem\\Bridge\\SFTP","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Filesystem\\Bridge\\SFTP\\Options::..."},{"name":"protocol","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'sftp'"}],"return_type":[{"name":"SFTPFilesystem","namespace":"Flow\\Filesystem\\Bridge\\SFTP","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"SFTP_FILESYSTEM","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/bridge\/filesystem\/sftp\/src\/Flow\/Filesystem\/Bridge\/SFTP\/DSL\/functions.php","start_line_in_file":52,"slug":"sftp-filesystem-options","name":"sftp_filesystem_options","namespace":"Flow\\Filesystem\\Bridge\\SFTP\\DSL","parameters":[],"return_type":[{"name":"Options","namespace":"Flow\\Filesystem\\Bridge\\SFTP","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"SFTP_FILESYSTEM","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/bridge\/monolog\/telemetry\/src\/Flow\/Bridge\/Monolog\/Telemetry\/DSL\/functions.php","start_line_in_file":40,"slug":"value-normalizer","name":"value_normalizer","namespace":"Flow\\Bridge\\Monolog\\Telemetry\\DSL","parameters":[],"return_type":[{"name":"ValueNormalizer","namespace":"Flow\\Bridge\\Monolog\\Telemetry","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"MONOLOG_TELEMETRY_BRIDGE","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFZhbHVlTm9ybWFsaXplciBmb3IgY29udmVydGluZyBhcmJpdHJhcnkgUEhQIHZhbHVlcyB0byBUZWxlbWV0cnkgYXR0cmlidXRlIHR5cGVzLgogKgogKiBUaGUgbm9ybWFsaXplciBoYW5kbGVzOgogKiAtIG51bGwg4oaSICdudWxsJyBzdHJpbmcKICogLSBzY2FsYXJzIChzdHJpbmcsIGludCwgZmxvYXQsIGJvb2wpIOKGkiB1bmNoYW5nZWQKICogLSBEYXRlVGltZUludGVyZmFjZSDihpIgdW5jaGFuZ2VkCiAqIC0gVGhyb3dhYmxlIOKGkiB1bmNoYW5nZWQKICogLSBhcnJheXMg4oaSIHJlY3Vyc2l2ZWx5IG5vcm1hbGl6ZWQKICogLSBvYmplY3RzIHdpdGggX190b1N0cmluZygpIOKGkiBzdHJpbmcgY2FzdAogKiAtIG9iamVjdHMgd2l0aG91dCBfX3RvU3RyaW5nKCkg4oaSIGNsYXNzIG5hbWUKICogLSBvdGhlciB0eXBlcyDihpIgZ2V0X2RlYnVnX3R5cGUoKSByZXN1bHQKICoKICogRXhhbXBsZSB1c2FnZToKICogYGBgcGhwCiAqICRub3JtYWxpemVyID0gdmFsdWVfbm9ybWFsaXplcigpOwogKiAkbm9ybWFsaXplZCA9ICRub3JtYWxpemVyLT5ub3JtYWxpemUoJHZhbHVlKTsKICogYGBgCiAqLw=="},{"repository_path":"src\/bridge\/monolog\/telemetry\/src\/Flow\/Bridge\/Monolog\/Telemetry\/DSL\/functions.php","start_line_in_file":73,"slug":"severity-mapper","name":"severity_mapper","namespace":"Flow\\Bridge\\Monolog\\Telemetry\\DSL","parameters":[{"name":"customMapping","type":[{"name":"array","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"SeverityMapper","namespace":"Flow\\Bridge\\Monolog\\Telemetry","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"MONOLOG_TELEMETRY_BRIDGE","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFNldmVyaXR5TWFwcGVyIGZvciBtYXBwaW5nIE1vbm9sb2cgbGV2ZWxzIHRvIFRlbGVtZXRyeSBzZXZlcml0aWVzLgogKgogKiBAcGFyYW0gbnVsbHxhcnJheTxpbnQsIFNldmVyaXR5PiAkY3VzdG9tTWFwcGluZyBPcHRpb25hbCBjdXN0b20gbWFwcGluZyAoTW9ub2xvZyBMZXZlbCB2YWx1ZSA9PiBUZWxlbWV0cnkgU2V2ZXJpdHkpCiAqCiAqIEV4YW1wbGUgd2l0aCBkZWZhdWx0IG1hcHBpbmc6CiAqIGBgYHBocAogKiAkbWFwcGVyID0gc2V2ZXJpdHlfbWFwcGVyKCk7CiAqIGBgYAogKgogKiBFeGFtcGxlIHdpdGggY3VzdG9tIG1hcHBpbmc6CiAqIGBgYHBocAogKiB1c2UgTW9ub2xvZ1xMZXZlbDsKICogdXNlIEZsb3dcVGVsZW1ldHJ5XExvZ2dlclxTZXZlcml0eTsKICoKICogJG1hcHBlciA9IHNldmVyaXR5X21hcHBlcihbCiAqICAgICBMZXZlbDo6RGVidWctPnZhbHVlID0+IFNldmVyaXR5OjpERUJVRywKICogICAgIExldmVsOjpJbmZvLT52YWx1ZSA9PiBTZXZlcml0eTo6SU5GTywKICogICAgIExldmVsOjpOb3RpY2UtPnZhbHVlID0+IFNldmVyaXR5OjpXQVJOLCAgLy8gQ3VzdG9tOiBOT1RJQ0Ug4oaSIFdBUk4gaW5zdGVhZCBvZiBJTkZPCiAqICAgICBMZXZlbDo6V2FybmluZy0+dmFsdWUgPT4gU2V2ZXJpdHk6OldBUk4sCiAqICAgICBMZXZlbDo6RXJyb3ItPnZhbHVlID0+IFNldmVyaXR5OjpFUlJPUiwKICogICAgIExldmVsOjpDcml0aWNhbC0+dmFsdWUgPT4gU2V2ZXJpdHk6OkZBVEFMLAogKiAgICAgTGV2ZWw6OkFsZXJ0LT52YWx1ZSA9PiBTZXZlcml0eTo6RkFUQUwsCiAqICAgICBMZXZlbDo6RW1lcmdlbmN5LT52YWx1ZSA9PiBTZXZlcml0eTo6RkFUQUwsCiAqIF0pOwogKiBgYGAKICov"},{"repository_path":"src\/bridge\/monolog\/telemetry\/src\/Flow\/Bridge\/Monolog\/Telemetry\/DSL\/functions.php","start_line_in_file":107,"slug":"log-record-converter","name":"log_record_converter","namespace":"Flow\\Bridge\\Monolog\\Telemetry\\DSL","parameters":[{"name":"severityMapper","type":[{"name":"SeverityMapper","namespace":"Flow\\Bridge\\Monolog\\Telemetry","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"valueNormalizer","type":[{"name":"ValueNormalizer","namespace":"Flow\\Bridge\\Monolog\\Telemetry","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"LogRecordConverter","namespace":"Flow\\Bridge\\Monolog\\Telemetry","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"MONOLOG_TELEMETRY_BRIDGE","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIExvZ1JlY29yZENvbnZlcnRlciBmb3IgY29udmVydGluZyBNb25vbG9nIExvZ1JlY29yZCB0byBUZWxlbWV0cnkgTG9nUmVjb3JkLgogKgogKiBUaGUgY29udmVydGVyIGhhbmRsZXM6CiAqIC0gU2V2ZXJpdHkgbWFwcGluZyBmcm9tIE1vbm9sb2cgTGV2ZWwgdG8gVGVsZW1ldHJ5IFNldmVyaXR5CiAqIC0gTWVzc2FnZSBib2R5IGNvbnZlcnNpb24KICogLSBDaGFubmVsIGFuZCBsZXZlbCBuYW1lIGFzIG1vbm9sb2cuKiBhdHRyaWJ1dGVzCiAqIC0gQ29udGV4dCB2YWx1ZXMgYXMgY29udGV4dC4qIGF0dHJpYnV0ZXMgKFRocm93YWJsZXMgdXNlIHNldEV4Y2VwdGlvbigpKQogKiAtIEV4dHJhIHZhbHVlcyBhcyBleHRyYS4qIGF0dHJpYnV0ZXMKICoKICogQHBhcmFtIG51bGx8U2V2ZXJpdHlNYXBwZXIgJHNldmVyaXR5TWFwcGVyIEN1c3RvbSBzZXZlcml0eSBtYXBwZXIgKGRlZmF1bHRzIHRvIHN0YW5kYXJkIG1hcHBpbmcpCiAqIEBwYXJhbSBudWxsfFZhbHVlTm9ybWFsaXplciAkdmFsdWVOb3JtYWxpemVyIEN1c3RvbSB2YWx1ZSBub3JtYWxpemVyIChkZWZhdWx0cyB0byBzdGFuZGFyZCBub3JtYWxpemVyKQogKgogKiBFeGFtcGxlIHVzYWdlOgogKiBgYGBwaHAKICogJGNvbnZlcnRlciA9IGxvZ19yZWNvcmRfY29udmVydGVyKCk7CiAqICR0ZWxlbWV0cnlSZWNvcmQgPSAkY29udmVydGVyLT5jb252ZXJ0KCRtb25vbG9nUmVjb3JkKTsKICogYGBgCiAqCiAqIEV4YW1wbGUgd2l0aCBjdXN0b20gbWFwcGVyOgogKiBgYGBwaHAKICogJGNvbnZlcnRlciA9IGxvZ19yZWNvcmRfY29udmVydGVyKAogKiAgICAgc2V2ZXJpdHlNYXBwZXI6IHNldmVyaXR5X21hcHBlcihbCiAqICAgICAgICAgTGV2ZWw6OkRlYnVnLT52YWx1ZSA9PiBTZXZlcml0eTo6VFJBQ0UsCiAqICAgICBdKQogKiApOwogKiBgYGAKICov"},{"repository_path":"src\/bridge\/monolog\/telemetry\/src\/Flow\/Bridge\/Monolog\/Telemetry\/DSL\/functions.php","start_line_in_file":149,"slug":"telemetry-handler","name":"telemetry_handler","namespace":"Flow\\Bridge\\Monolog\\Telemetry\\DSL","parameters":[{"name":"logger","type":[{"name":"Logger","namespace":"Flow\\Telemetry\\Logger","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"converter","type":[{"name":"LogRecordConverter","namespace":"Flow\\Bridge\\Monolog\\Telemetry","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Bridge\\Monolog\\Telemetry\\LogRecordConverter::..."},{"name":"level","type":[{"name":"Level","namespace":"Monolog","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Monolog\\Level::..."},{"name":"bubble","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"errorHandler","type":[{"name":"ErrorHandler","namespace":"Flow\\Telemetry\\ErrorHandler","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Telemetry\\ErrorHandler\\ErrorLogHandler::..."}],"return_type":[{"name":"TelemetryHandler","namespace":"Flow\\Bridge\\Monolog\\Telemetry","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"MONOLOG_TELEMETRY_BRIDGE","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFRlbGVtZXRyeUhhbmRsZXIgZm9yIGZvcndhcmRpbmcgTW9ub2xvZyBsb2dzIHRvIEZsb3cgVGVsZW1ldHJ5LgogKgogKiBAcGFyYW0gTG9nZ2VyICRsb2dnZXIgVGhlIEZsb3cgVGVsZW1ldHJ5IGxvZ2dlciB0byBmb3J3YXJkIGxvZ3MgdG8KICogQHBhcmFtIExvZ1JlY29yZENvbnZlcnRlciAkY29udmVydGVyIENvbnZlcnRlciB0byB0cmFuc2Zvcm0gTW9ub2xvZyBMb2dSZWNvcmQgdG8gVGVsZW1ldHJ5IExvZ1JlY29yZAogKiBAcGFyYW0gTGV2ZWwgJGxldmVsIFRoZSBtaW5pbXVtIGxvZ2dpbmcgbGV2ZWwgYXQgd2hpY2ggdGhpcyBoYW5kbGVyIHdpbGwgYmUgdHJpZ2dlcmVkCiAqIEBwYXJhbSBib29sICRidWJibGUgV2hldGhlciBtZXNzYWdlcyBoYW5kbGVkIGJ5IHRoaXMgaGFuZGxlciBzaG91bGQgYnViYmxlIHVwIHRvIG90aGVyIGhhbmRsZXJzCiAqCiAqIEV4YW1wbGUgdXNhZ2U6CiAqIGBgYHBocAogKiB1c2UgTW9ub2xvZ1xMb2dnZXIgYXMgTW9ub2xvZ0xvZ2dlcjsKICogdXNlIGZ1bmN0aW9uIEZsb3dcQnJpZGdlXE1vbm9sb2dcVGVsZW1ldHJ5XERTTFx0ZWxlbWV0cnlfaGFuZGxlcjsKICogdXNlIGZ1bmN0aW9uIEZsb3dcVGVsZW1ldHJ5XERTTFx0ZWxlbWV0cnk7CiAqCiAqICR0ZWxlbWV0cnkgPSB0ZWxlbWV0cnkoKTsKICogJGxvZ2dlciA9ICR0ZWxlbWV0cnktPmxvZ2dlcignbXktYXBwJyk7CiAqCiAqICRtb25vbG9nID0gbmV3IE1vbm9sb2dMb2dnZXIoJ2NoYW5uZWwnKTsKICogJG1vbm9sb2ctPnB1c2hIYW5kbGVyKHRlbGVtZXRyeV9oYW5kbGVyKCRsb2dnZXIpKTsKICoKICogJG1vbm9sb2ctPmluZm8oJ1VzZXIgbG9nZ2VkIGluJywgWyd1c2VyX2lkJyA9PiAxMjNdKTsKICogLy8g4oaSIEZvcndhcmRlZCB0byBGbG93IFRlbGVtZXRyeSB3aXRoIElORk8gc2V2ZXJpdHkKICogYGBgCiAqCiAqIEV4YW1wbGUgd2l0aCBjdXN0b20gY29udmVydGVyOgogKiBgYGBwaHAKICogJGNvbnZlcnRlciA9IGxvZ19yZWNvcmRfY29udmVydGVyKAogKiAgICAgc2V2ZXJpdHlNYXBwZXI6IHNldmVyaXR5X21hcHBlcihbCiAqICAgICAgICAgTGV2ZWw6OkRlYnVnLT52YWx1ZSA9PiBTZXZlcml0eTo6VFJBQ0UsCiAqICAgICBdKQogKiApOwogKiAkbW9ub2xvZy0+cHVzaEhhbmRsZXIodGVsZW1ldHJ5X2hhbmRsZXIoJGxvZ2dlciwgJGNvbnZlcnRlcikpOwogKiBgYGAKICov"},{"repository_path":"src\/bridge\/symfony\/http-foundation-telemetry\/src\/Flow\/Bridge\/Symfony\/HttpFoundationTelemetry\/DSL\/functions.php","start_line_in_file":16,"slug":"symfony-request-carrier","name":"symfony_request_carrier","namespace":"Flow\\Bridge\\Symfony\\HttpFoundationTelemetry\\DSL","parameters":[{"name":"request","type":[{"name":"Request","namespace":"Symfony\\Component\\HttpFoundation","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"RequestCarrier","namespace":"Flow\\Bridge\\Symfony\\HttpFoundationTelemetry","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"SYMFONY_HTTP_FOUNDATION_TELEMETRY_BRIDGE","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/bridge\/symfony\/http-foundation-telemetry\/src\/Flow\/Bridge\/Symfony\/HttpFoundationTelemetry\/DSL\/functions.php","start_line_in_file":22,"slug":"symfony-response-carrier","name":"symfony_response_carrier","namespace":"Flow\\Bridge\\Symfony\\HttpFoundationTelemetry\\DSL","parameters":[{"name":"response","type":[{"name":"Response","namespace":"Symfony\\Component\\HttpFoundation","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ResponseCarrier","namespace":"Flow\\Bridge\\Symfony\\HttpFoundationTelemetry","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"SYMFONY_HTTP_FOUNDATION_TELEMETRY_BRIDGE","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/bridge\/psr7\/telemetry\/src\/Flow\/Bridge\/Psr7\/Telemetry\/DSL\/functions.php","start_line_in_file":16,"slug":"psr7-request-carrier","name":"psr7_request_carrier","namespace":"Flow\\Bridge\\Psr7\\Telemetry\\DSL","parameters":[{"name":"request","type":[{"name":"ServerRequestInterface","namespace":"Psr\\Http\\Message","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"RequestCarrier","namespace":"Flow\\Bridge\\Psr7\\Telemetry","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PSR7_TELEMETRY_BRIDGE","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/bridge\/psr7\/telemetry\/src\/Flow\/Bridge\/Psr7\/Telemetry\/DSL\/functions.php","start_line_in_file":22,"slug":"psr7-response-carrier","name":"psr7_response_carrier","namespace":"Flow\\Bridge\\Psr7\\Telemetry\\DSL","parameters":[{"name":"response","type":[{"name":"ResponseInterface","namespace":"Psr\\Http\\Message","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ResponseCarrier","namespace":"Flow\\Bridge\\Psr7\\Telemetry","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PSR7_TELEMETRY_BRIDGE","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/bridge\/psr18\/telemetry\/src\/Flow\/Bridge\/Psr18\/Telemetry\/DSL\/functions.php","start_line_in_file":16,"slug":"psr18-traceable-client","name":"psr18_traceable_client","namespace":"Flow\\Bridge\\Psr18\\Telemetry\\DSL","parameters":[{"name":"client","type":[{"name":"ClientInterface","namespace":"Psr\\Http\\Client","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"telemetry","type":[{"name":"Telemetry","namespace":"Flow\\Telemetry","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"urlSanitizer","type":[{"name":"UrlSanitizer","namespace":"Flow\\Telemetry\\Sanitizer","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Telemetry\\Sanitizer\\UrlSanitizer::..."}],"return_type":[{"name":"PSR18TraceableClient","namespace":"Flow\\Bridge\\Psr18\\Telemetry","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PSR18_TELEMETRY_BRIDGE","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/bridge\/telemetry\/otlp\/src\/Flow\/Bridge\/Telemetry\/OTLP\/DSL\/functions.php","start_line_in_file":49,"slug":"otlp-json-serializer","name":"otlp_json_serializer","namespace":"Flow\\Bridge\\Telemetry\\OTLP\\DSL","parameters":[],"return_type":[{"name":"JsonSerializer","namespace":"Flow\\Bridge\\Telemetry\\OTLP\\Serializer","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY_OTLP","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIEpTT04gc2VyaWFsaXplciBmb3IgT1RMUC4KICoKICogUmV0dXJucyBhIEpzb25TZXJpYWxpemVyIHRoYXQgY29udmVydHMgdGVsZW1ldHJ5IGRhdGEgdG8gT1RMUCBKU09OIHdpcmUgZm9ybWF0LgogKiBVc2UgdGhpcyB3aXRoIEN1cmxUcmFuc3BvcnQgZm9yIEpTT04gb3ZlciBIVFRQLgogKgogKiBFeGFtcGxlIHVzYWdlOgogKiBgYGBwaHAKICogJHNlcmlhbGl6ZXIgPSBvdGxwX2pzb25fc2VyaWFsaXplcigpOwogKiAkdHJhbnNwb3J0ID0gb3RscF9jdXJsX3RyYW5zcG9ydCgkZW5kcG9pbnQsICRzZXJpYWxpemVyKTsKICogYGBgCiAqLw=="},{"repository_path":"src\/bridge\/telemetry\/otlp\/src\/Flow\/Bridge\/Telemetry\/OTLP\/DSL\/functions.php","start_line_in_file":70,"slug":"otlp-protobuf-serializer","name":"otlp_protobuf_serializer","namespace":"Flow\\Bridge\\Telemetry\\OTLP\\DSL","parameters":[],"return_type":[{"name":"ProtobufSerializer","namespace":"Flow\\Bridge\\Telemetry\\OTLP\\Serializer","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY_OTLP","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFByb3RvYnVmIHNlcmlhbGl6ZXIgZm9yIE9UTFAuCiAqCiAqIFJldHVybnMgYSBQcm90b2J1ZlNlcmlhbGl6ZXIgdGhhdCBjb252ZXJ0cyB0ZWxlbWV0cnkgZGF0YSB0byBPVExQIFByb3RvYnVmIGJpbmFyeSBmb3JtYXQuCiAqIFVzZSB0aGlzIHdpdGggQ3VybFRyYW5zcG9ydCBmb3IgUHJvdG9idWYgb3ZlciBIVFRQLCBvciB3aXRoIEdycGNUcmFuc3BvcnQuCiAqCiAqIFJlcXVpcmVzOgogKiAtIGdvb2dsZS9wcm90b2J1ZiBwYWNrYWdlCiAqCiAqIEV4YW1wbGUgdXNhZ2U6CiAqIGBgYHBocAogKiAkc2VyaWFsaXplciA9IG90bHBfcHJvdG9idWZfc2VyaWFsaXplcigpOwogKiAkdHJhbnNwb3J0ID0gb3RscF9jdXJsX3RyYW5zcG9ydCgkZW5kcG9pbnQsICRzZXJpYWxpemVyKTsKICogYGBgCiAqLw=="},{"repository_path":"src\/bridge\/telemetry\/otlp\/src\/Flow\/Bridge\/Telemetry\/OTLP\/DSL\/functions.php","start_line_in_file":94,"slug":"otlp-grpc-transport","name":"otlp_grpc_transport","namespace":"Flow\\Bridge\\Telemetry\\OTLP\\DSL","parameters":[{"name":"endpoint","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"headers","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"insecure","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"timeoutMs","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"250"},{"name":"shutdownTimeoutMs","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"5000"},{"name":"failover","type":[{"name":"Transport","namespace":"Flow\\Bridge\\Telemetry\\OTLP\\Transport","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Transport","namespace":"Flow\\Bridge\\Telemetry\\OTLP\\Transport","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY_OTLP","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIGdSUEMgdHJhbnNwb3J0IGZvciBPVExQIGVuZHBvaW50cy4KICoKICogQ3JlYXRlcyBhIEdycGNUcmFuc3BvcnQgY29uZmlndXJlZCB0byBzZW5kIHRlbGVtZXRyeSBkYXRhIHRvIGFuIE9UTFAtY29tcGF0aWJsZQogKiBlbmRwb2ludCB1c2luZyBnUlBDIHByb3RvY29sIHdpdGggUHJvdG9idWYgc2VyaWFsaXphdGlvbi4gT1RMUC9nUlBDIG1hbmRhdGVzCiAqIFByb3RvYnVmLCBzbyB0aGUgc2VyaWFsaXplciBpcyBidWlsdCBpbnRlcm5hbGx5IGFuZCBub3QgY29uZmlndXJhYmxlLgogKgogKiBSZXF1aXJlczoKICogLSBleHQtZ3JwYyBQSFAgZXh0ZW5zaW9uCiAqIC0gZ29vZ2xlL3Byb3RvYnVmIHBhY2thZ2UKICoKICogQHBhcmFtIHN0cmluZyAkZW5kcG9pbnQgZ1JQQyBlbmRwb2ludCAoZS5nLiwgJ2xvY2FsaG9zdDo0MzE3JykKICogQHBhcmFtIGFycmF5PHN0cmluZywgc3RyaW5nPiAkaGVhZGVycyBBZGRpdGlvbmFsIGhlYWRlcnMgKG1ldGFkYXRhKSB0byBpbmNsdWRlIGluIHJlcXVlc3RzCiAqIEBwYXJhbSBib29sICRpbnNlY3VyZSBXaGV0aGVyIHRvIHVzZSBpbnNlY3VyZSBjaGFubmVsIGNyZWRlbnRpYWxzIChkZWZhdWx0IHRydWUgZm9yIGxvY2FsIGRldikKICogQHBhcmFtIGludCAkdGltZW91dE1zIFBlci1jYWxsIGRlYWRsaW5lIGluIG1pbGxpc2Vjb25kcyAoY292ZXJzIGNvbm5lY3QgKyBzZW5kICsgcmVjZWl2ZSkKICogQHBhcmFtIGludCAkc2h1dGRvd25UaW1lb3V0TXMgV2FsbC1jbG9jayBidWRnZXQgZm9yIGRyYWluaW5nIHBlbmRpbmcgY2FsbHMgYXQgc2h1dGRvd24KICogQHBhcmFtID9UcmFuc3BvcnQgJGZhaWxvdmVyIE9wdGlvbmFsIGZhaWxvdmVyIHRyYW5zcG9ydCByZWNlaXZpbmcgcHJpb3IgYmF0Y2hlcyB3aGVuIHByaW1hcnkgZmFpbHMKICov"},{"repository_path":"src\/bridge\/telemetry\/otlp\/src\/Flow\/Bridge\/Telemetry\/OTLP\/DSL\/functions.php","start_line_in_file":109,"slug":"otlp-curl-options","name":"otlp_curl_options","namespace":"Flow\\Bridge\\Telemetry\\OTLP\\DSL","parameters":[],"return_type":[{"name":"CurlTransportOptions","namespace":"Flow\\Bridge\\Telemetry\\OTLP\\Transport","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY_OTLP","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBjdXJsIHRyYW5zcG9ydCBvcHRpb25zIGZvciBPVExQLgogKi8="},{"repository_path":"src\/bridge\/telemetry\/otlp\/src\/Flow\/Bridge\/Telemetry\/OTLP\/DSL\/functions.php","start_line_in_file":130,"slug":"otlp-curl-transport","name":"otlp_curl_transport","namespace":"Flow\\Bridge\\Telemetry\\OTLP\\DSL","parameters":[{"name":"endpoint","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"serializer","type":[{"name":"JsonSerializer","namespace":"Flow\\Bridge\\Telemetry\\OTLP\\Serializer","is_nullable":false,"is_variadic":false},{"name":"ProtobufSerializer","namespace":"Flow\\Bridge\\Telemetry\\OTLP\\Serializer","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Bridge\\Telemetry\\OTLP\\Serializer\\JsonSerializer::..."},{"name":"options","type":[{"name":"CurlTransportOptions","namespace":"Flow\\Bridge\\Telemetry\\OTLP\\Transport","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Bridge\\Telemetry\\OTLP\\Transport\\CurlTransportOptions::..."},{"name":"failover","type":[{"name":"Transport","namespace":"Flow\\Bridge\\Telemetry\\OTLP\\Transport","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Transport","namespace":"Flow\\Bridge\\Telemetry\\OTLP\\Transport","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY_OTLP","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIHN5bmNocm9ub3VzIGN1cmwgdHJhbnNwb3J0IGZvciBPVExQIGVuZHBvaW50cy4KICoKICogQ3JlYXRlcyBhIEN1cmxUcmFuc3BvcnQgdGhhdCBkcml2ZXMgZWFjaCByZXF1ZXN0IHRvIGNvbXBsZXRpb24gYW5kIHJlcG9ydHMgdGhlCiAqIG91dGNvbWUgaW1tZWRpYXRlbHkgKHJldHVybnMgb24gc3VjY2VzcywgdGhyb3dzIG9uIGZhaWx1cmUpLiBPVExQL0hUVFAgYWxsb3dzCiAqIEpTT04gb3IgUHJvdG9idWYgZW5jb2Rpbmc7IGRlZmF1bHRzIHRvIEpTT04uIEtlZXBpbmcgZXhwb3J0IG9mZiB0aGUgYXBwbGljYXRpb24KICogaG90IHBhdGggaXMgdGhlIGpvYiBvZiB0aGUgYmF0Y2hpbmcgcHJvY2Vzc29yIGluIGZyb250IG9mIHRoZSBleHBvcnRlci4KICoKICogUmVxdWlyZXM6IGV4dC1jdXJsIFBIUCBleHRlbnNpb24KICoKICogQHBhcmFtIHN0cmluZyAkZW5kcG9pbnQgT1RMUCBlbmRwb2ludCBVUkwgKGUuZy4sICdodHRwOi8vbG9jYWxob3N0OjQzMTgnKQogKiBAcGFyYW0gSnNvblNlcmlhbGl6ZXJ8UHJvdG9idWZTZXJpYWxpemVyICRzZXJpYWxpemVyIFNlcmlhbGl6ZXIgZm9yIGVuY29kaW5nIHRlbGVtZXRyeSBkYXRhIChKU09OIG9yIFByb3RvYnVmKQogKiBAcGFyYW0gQ3VybFRyYW5zcG9ydE9wdGlvbnMgJG9wdGlvbnMgVHJhbnNwb3J0IGNvbmZpZ3VyYXRpb24gb3B0aW9ucwogKiBAcGFyYW0gP1RyYW5zcG9ydCAkZmFpbG92ZXIgT3B0aW9uYWwgZmFpbG92ZXIgdHJhbnNwb3J0IHJlY2VpdmluZyB0aGUgYmF0Y2ggd2hlbiB0aGUgcHJpbWFyeSBmYWlscwogKi8="},{"repository_path":"src\/bridge\/telemetry\/otlp\/src\/Flow\/Bridge\/Telemetry\/OTLP\/DSL\/functions.php","start_line_in_file":143,"slug":"otlp-async-curl-options","name":"otlp_async_curl_options","namespace":"Flow\\Bridge\\Telemetry\\OTLP\\DSL","parameters":[],"return_type":[{"name":"AsyncCurlTransportOptions","namespace":"Flow\\Bridge\\Telemetry\\OTLP\\Transport","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY_OTLP","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhc3luYyBjdXJsIHRyYW5zcG9ydCBvcHRpb25zIGZvciBPVExQLgogKi8="},{"repository_path":"src\/bridge\/telemetry\/otlp\/src\/Flow\/Bridge\/Telemetry\/OTLP\/DSL\/functions.php","start_line_in_file":158,"slug":"otlp-async-curl-transport","name":"otlp_async_curl_transport","namespace":"Flow\\Bridge\\Telemetry\\OTLP\\DSL","parameters":[{"name":"endpoint","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"serializer","type":[{"name":"JsonSerializer","namespace":"Flow\\Bridge\\Telemetry\\OTLP\\Serializer","is_nullable":false,"is_variadic":false},{"name":"ProtobufSerializer","namespace":"Flow\\Bridge\\Telemetry\\OTLP\\Serializer","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Bridge\\Telemetry\\OTLP\\Serializer\\JsonSerializer::..."},{"name":"options","type":[{"name":"AsyncCurlTransportOptions","namespace":"Flow\\Bridge\\Telemetry\\OTLP\\Transport","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Bridge\\Telemetry\\OTLP\\Transport\\AsyncCurlTransportOptions::..."},{"name":"failover","type":[{"name":"Transport","namespace":"Flow\\Bridge\\Telemetry\\OTLP\\Transport","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"error_handler","type":[{"name":"ErrorHandler","namespace":"Flow\\Telemetry\\ErrorHandler","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Telemetry\\ErrorHandler\\ErrorLogHandler::..."}],"return_type":[{"name":"AsyncCurlTransport","namespace":"Flow\\Bridge\\Telemetry\\OTLP\\Transport","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY_OTLP","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBhc3luY2hyb25vdXMgY3VybCB0cmFuc3BvcnQgZm9yIE9UTFAgZW5kcG9pbnRzLgogKgogKiBAcGFyYW0gc3RyaW5nICRlbmRwb2ludCBPVExQIGVuZHBvaW50IFVSTCAoZS5nLiwgJ2h0dHA6Ly9sb2NhbGhvc3Q6NDMxOCcpCiAqIEBwYXJhbSBKc29uU2VyaWFsaXplcnxQcm90b2J1ZlNlcmlhbGl6ZXIgJHNlcmlhbGl6ZXIgU2VyaWFsaXplciBmb3IgZW5jb2RpbmcgdGVsZW1ldHJ5IGRhdGEgKEpTT04gb3IgUHJvdG9idWYpCiAqIEBwYXJhbSBBc3luY0N1cmxUcmFuc3BvcnRPcHRpb25zICRvcHRpb25zIFRyYW5zcG9ydCBjb25maWd1cmF0aW9uIG9wdGlvbnMKICogQHBhcmFtID9UcmFuc3BvcnQgJGZhaWxvdmVyIE9wdGlvbmFsIGZhaWxvdmVyIHRyYW5zcG9ydCByZWNlaXZpbmcgcHJpb3IgYmF0Y2hlcyB3aGVuIHByaW1hcnkgZmFpbHMKICogQHBhcmFtIEVycm9ySGFuZGxlciAkZXJyb3JfaGFuZGxlciBIYW5kbGVyIGZvciBmYWlsdXJlcyByZWFwZWQgb24gc2VuZCgpL3RpY2soKS9zaHV0ZG93bigpIChubyBmYWlsb3ZlcikKICov"},{"repository_path":"src\/bridge\/telemetry\/otlp\/src\/Flow\/Bridge\/Telemetry\/OTLP\/DSL\/functions.php","start_line_in_file":180,"slug":"otlp-stream-transport","name":"otlp_stream_transport","namespace":"Flow\\Bridge\\Telemetry\\OTLP\\DSL","parameters":[{"name":"destination","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"filePermissions","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"420"},{"name":"createDirectories","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"}],"return_type":[{"name":"Transport","namespace":"Flow\\Bridge\\Telemetry\\OTLP\\Transport","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY_OTLP","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIHN0cmVhbSB0cmFuc3BvcnQgZm9yIE9UTFAgdGhhdCB3cml0ZXMgSlNPTkwgdG8gYSBzaW5nbGUgZGVzdGluYXRpb24uCiAqCiAqIEFjY2VwdHMgYW4gYWJzb2x1dGUgZmlsZSBwYXRoIG9yIGEgcGhwOi8vIHN0cmVhbSB3cmFwcGVyIHN1Y2ggYXMKICogJ3BocDovL3N0ZG91dCcsICdwaHA6Ly9zdGRlcnInLCAncGhwOi8vbWVtb3J5Jywgb3IgJ3BocDovL3RlbXAnLiBFYWNoCiAqIGV4cG9ydCgpIGNhbGwgYXBwZW5kcyBvbmUgSlNPTiBMaW5lIHVuZGVyIExPQ0tfRVggc28gY29uY3VycmVudCB3cml0ZXJzCiAqIGludGVybGVhdmUgYXQgbGluZSBib3VuZGFyaWVzLiBUaGUgJGZpbGVQZXJtaXNzaW9ucyBhbmQgJGNyZWF0ZURpcmVjdG9yaWVzCiAqIHBhcmFtZXRlcnMgYXBwbHkgb25seSB3aGVuIHRoZSBkZXN0aW5hdGlvbiBpcyBhIGZpbGUgcGF0aC4KICoKICogUGVyIHRoZSBPVExQIEZpbGUgRXhwb3J0ZXIgc3BlYyBvbmx5IEpTT04gZW5jb2RpbmcgaXMgc3VwcG9ydGVkLgogKi8="},{"repository_path":"src\/bridge\/telemetry\/otlp\/src\/Flow\/Bridge\/Telemetry\/OTLP\/DSL\/functions.php","start_line_in_file":203,"slug":"otlp-exporter","name":"otlp_exporter","namespace":"Flow\\Bridge\\Telemetry\\OTLP\\DSL","parameters":[{"name":"transport","type":[{"name":"Transport","namespace":"Flow\\Bridge\\Telemetry\\OTLP\\Transport","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"errorHandler","type":[{"name":"ErrorHandler","namespace":"Flow\\Telemetry\\ErrorHandler","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Telemetry\\ErrorHandler\\ErrorLogHandler::..."}],"return_type":[{"name":"OTLPExporter","namespace":"Flow\\Bridge\\Telemetry\\OTLP\\Exporter","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY_OTLP","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBPVExQIGV4cG9ydGVyIHRoYXQgZGlzcGF0Y2hlcyBsb2dzLCBtZXRyaWNzLCBhbmQgc3BhbnMgdGhyb3VnaCBhIHNpbmdsZSB0cmFuc3BvcnQuCiAqCiAqIEV4YW1wbGUgdXNhZ2U6CiAqIGBgYHBocAogKiAkZXhwb3J0ZXIgPSBvdGxwX2V4cG9ydGVyKCR0cmFuc3BvcnQpOwogKiAkc3BhblByb2Nlc3NvciA9IGJhdGNoaW5nX3NwYW5fcHJvY2Vzc29yKCRleHBvcnRlcik7CiAqICRtZXRyaWNQcm9jZXNzb3IgPSBiYXRjaGluZ19tZXRyaWNfcHJvY2Vzc29yKCRleHBvcnRlcik7CiAqICRsb2dQcm9jZXNzb3IgPSBiYXRjaGluZ19sb2dfcHJvY2Vzc29yKCRleHBvcnRlcik7CiAqIGBgYAogKgogKiBAcGFyYW0gVHJhbnNwb3J0ICR0cmFuc3BvcnQgVGhlIHRyYW5zcG9ydCBmb3Igc2VuZGluZyB0ZWxlbWV0cnkgZGF0YQogKiBAcGFyYW0gRXJyb3JIYW5kbGVyICRlcnJvckhhbmRsZXIgSGFuZGxlciBmb3IgVGhyb3dhYmxlcyByYWlzZWQgYnkgdGhlIHRyYW5zcG9ydAogKi8="},{"repository_path":"src\/bridge\/telemetry\/otlp\/src\/Flow\/Bridge\/Telemetry\/OTLP\/DSL\/functions.php","start_line_in_file":217,"slug":"otlp-tracer-provider","name":"otlp_tracer_provider","namespace":"Flow\\Bridge\\Telemetry\\OTLP\\DSL","parameters":[{"name":"processor","type":[{"name":"SpanProcessor","namespace":"Flow\\Telemetry\\Tracer","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"clock","type":[{"name":"ClockInterface","namespace":"Psr\\Clock","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"sampler","type":[{"name":"Sampler","namespace":"Flow\\Telemetry\\Tracer\\Sampler","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Telemetry\\Tracer\\Sampler\\ParentBasedSampler::..."},{"name":"contextStorage","type":[{"name":"ContextStorage","namespace":"Flow\\Telemetry\\Context","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Telemetry\\Context\\MemoryContextStorage::..."}],"return_type":[{"name":"TracerProvider","namespace":"Flow\\Telemetry\\Tracer","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY_OTLP","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIHRyYWNlciBwcm92aWRlciBjb25maWd1cmVkIGZvciBPVExQIGV4cG9ydC4KICoKICogQHBhcmFtIFNwYW5Qcm9jZXNzb3IgJHByb2Nlc3NvciBUaGUgcHJvY2Vzc29yIGZvciBoYW5kbGluZyBzcGFucwogKiBAcGFyYW0gQ2xvY2tJbnRlcmZhY2UgJGNsb2NrIFRoZSBjbG9jayBmb3IgdGltZXN0YW1wcwogKiBAcGFyYW0gU2FtcGxlciAkc2FtcGxlciBUaGUgc2FtcGxlciBmb3IgZGVjaWRpbmcgd2hldGhlciB0byByZWNvcmQgc3BhbnMKICogQHBhcmFtIENvbnRleHRTdG9yYWdlICRjb250ZXh0U3RvcmFnZSBUaGUgY29udGV4dCBzdG9yYWdlIGZvciBwcm9wYWdhdGluZyB0cmFjZSBjb250ZXh0CiAqLw=="},{"repository_path":"src\/bridge\/telemetry\/otlp\/src\/Flow\/Bridge\/Telemetry\/OTLP\/DSL\/functions.php","start_line_in_file":234,"slug":"otlp-meter-provider","name":"otlp_meter_provider","namespace":"Flow\\Bridge\\Telemetry\\OTLP\\DSL","parameters":[{"name":"processor","type":[{"name":"MetricProcessor","namespace":"Flow\\Telemetry\\Meter","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"clock","type":[{"name":"ClockInterface","namespace":"Psr\\Clock","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"temporality","type":[{"name":"AggregationTemporality","namespace":"Flow\\Telemetry\\Meter","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Telemetry\\Meter\\AggregationTemporality::..."}],"return_type":[{"name":"MeterProvider","namespace":"Flow\\Telemetry\\Meter","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY_OTLP","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIG1ldGVyIHByb3ZpZGVyIGNvbmZpZ3VyZWQgZm9yIE9UTFAgZXhwb3J0LgogKgogKiBAcGFyYW0gTWV0cmljUHJvY2Vzc29yICRwcm9jZXNzb3IgVGhlIHByb2Nlc3NvciBmb3IgaGFuZGxpbmcgbWV0cmljcwogKiBAcGFyYW0gQ2xvY2tJbnRlcmZhY2UgJGNsb2NrIFRoZSBjbG9jayBmb3IgdGltZXN0YW1wcwogKiBAcGFyYW0gQWdncmVnYXRpb25UZW1wb3JhbGl0eSAkdGVtcG9yYWxpdHkgVGhlIGFnZ3JlZ2F0aW9uIHRlbXBvcmFsaXR5IGZvciBtZXRyaWNzCiAqLw=="},{"repository_path":"src\/bridge\/telemetry\/otlp\/src\/Flow\/Bridge\/Telemetry\/OTLP\/DSL\/functions.php","start_line_in_file":250,"slug":"otlp-logger-provider","name":"otlp_logger_provider","namespace":"Flow\\Bridge\\Telemetry\\OTLP\\DSL","parameters":[{"name":"processor","type":[{"name":"LogProcessor","namespace":"Flow\\Telemetry\\Logger","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"clock","type":[{"name":"ClockInterface","namespace":"Psr\\Clock","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"contextStorage","type":[{"name":"ContextStorage","namespace":"Flow\\Telemetry\\Context","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Telemetry\\Context\\MemoryContextStorage::..."}],"return_type":[{"name":"LoggerProvider","namespace":"Flow\\Telemetry\\Logger","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY_OTLP","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIGxvZ2dlciBwcm92aWRlciBjb25maWd1cmVkIGZvciBPVExQIGV4cG9ydC4KICoKICogQHBhcmFtIExvZ1Byb2Nlc3NvciAkcHJvY2Vzc29yIFRoZSBwcm9jZXNzb3IgZm9yIGhhbmRsaW5nIGxvZyByZWNvcmRzCiAqIEBwYXJhbSBDbG9ja0ludGVyZmFjZSAkY2xvY2sgVGhlIGNsb2NrIGZvciB0aW1lc3RhbXBzCiAqIEBwYXJhbSBDb250ZXh0U3RvcmFnZSAkY29udGV4dFN0b3JhZ2UgVGhlIGNvbnRleHQgc3RvcmFnZSBmb3IgcHJvcGFnYXRpbmcgY29udGV4dAogKi8="}] \ No newline at end of file +[{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":276,"slug":"df","name":"df","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"config","type":[{"name":"Config","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false},{"name":"ConfigBuilder","namespace":"Flow\\ETL\\Config","is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Flow","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}},{"name":"DocumentationExample","namespace":"Flow\\Documentation\\Attribute","arguments":{"topic":"reading","example":"data_frame"}},{"name":"DocumentationExample","namespace":"Flow\\Documentation\\Attribute","arguments":{"topic":"writing","example":"overwrite"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEFsaWFzIGZvciBkYXRhX2ZyYW1lKCkgOiBGbG93LgogKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":284,"slug":"data-frame","name":"data_frame","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"config","type":[{"name":"Config","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false},{"name":"ConfigBuilder","namespace":"Flow\\ETL\\Config","is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Flow","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}},{"name":"DocumentationExample","namespace":"Flow\\Documentation\\Attribute","arguments":{"topic":"reading","example":"data_frame"}},{"name":"DocumentationExample","namespace":"Flow\\Documentation\\Attribute","arguments":{"topic":"writing","example":"overwrite"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":290,"slug":"telemetry-options","name":"telemetry_options","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"trace_loading","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"trace_transformations","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"trace_cache","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"collect_metrics","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"TelemetryOptions","namespace":"Flow\\ETL\\Config\\Telemetry","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":302,"slug":"from-rows","name":"from_rows","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"rows","type":[{"name":"Rows","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"RowsExtractor","namespace":"Flow\\ETL\\Extractor","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"EXTRACTOR"}},{"name":"DocumentationExample","namespace":"Flow\\Documentation\\Attribute","arguments":{"topic":"reading","example":"data_frame"}},{"name":"DocumentationExample","namespace":"Flow\\Documentation\\Attribute","arguments":{"topic":"writing","example":"overwrite"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":309,"slug":"from-path-partitions","name":"from_path_partitions","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"path","type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"filesystem","type":[{"name":"Filesystem","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Filesystem\\Local\\NativeLocalFilesystem::..."}],"return_type":[{"name":"PathPartitionsExtractor","namespace":"Flow\\ETL\\Extractor","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"EXTRACTOR"}},{"name":"DocumentationExample","namespace":"Flow\\Documentation\\Attribute","arguments":{"topic":"partitioning","example":"path_partitions"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":325,"slug":"from-array","name":"from_array","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"array","type":[{"name":"iterable","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"schema","type":[{"name":"Schema","namespace":"Flow\\ETL","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"filesystem","type":[{"name":"Filesystem","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Filesystem\\Local\\NativeLocalFilesystem::..."},{"name":"spillRoot","type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"ArrayExtractor","namespace":"Flow\\ETL\\Extractor","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"EXTRACTOR"}},{"name":"DocumentationExample","namespace":"Flow\\Documentation\\Attribute","arguments":{"topic":"reading","example":"array"}},{"name":"DocumentationExample","namespace":"Flow\\Documentation\\Attribute","arguments":{"topic":"reading","example":"data_frame"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBpdGVyYWJsZTxhcnJheTxtaXhlZD4+ICRhcnJheQogKiBAcGFyYW0gbnVsbHxTY2hlbWEgJHNjaGVtYSAtIEBkZXByZWNhdGVkIHVzZSB3aXRoU2NoZW1hKCkgbWV0aG9kIGluc3RlYWQKICogQHBhcmFtIG51bGx8UGF0aCAkc3BpbGxSb290IC0gd2hlcmUgYSBub24tYXJyYXkgJGFycmF5IGlzIHNwaWxsZWQgd2hpbGUgaXQgaXMgZGVzY3JpYmVkOyBudWxsIHJlc29sdmVzIHRvCiAqICAgICAgICAgICAgICAgICAgICAgICAgICAkZmlsZXN5c3RlbS0+Z2V0U3lzdGVtVG1wRGlyKCkgYW5kIG9ubHkgb24gdGhhdCBwYXRoCiAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":346,"slug":"from-cache","name":"from_cache","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"id","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"fallback_extractor","type":[{"name":"Extractor","namespace":"Flow\\ETL","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"clear","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"cache","type":[{"name":"Cache","namespace":"Flow\\ETL","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"CacheExtractor","namespace":"Flow\\ETL\\Extractor","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"EXTRACTOR"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBzdHJpbmcgJGlkIC0gY2FjaGUgaWQgZnJvbSB3aGljaCBkYXRhIHdpbGwgYmUgZXh0cmFjdGVkCiAqIEBwYXJhbSBudWxsfEV4dHJhY3RvciAkZmFsbGJhY2tfZXh0cmFjdG9yIC0gZXh0cmFjdG9yIHRoYXQgd2lsbCBiZSB1c2VkIHdoZW4gY2FjaGUgaXMgZW1wdHkgLSBAZGVwcmVjYXRlZCB1c2Ugd2l0aEZhbGxiYWNrRXh0cmFjdG9yKCkgbWV0aG9kIGluc3RlYWQKICogQHBhcmFtIGJvb2wgJGNsZWFyIC0gY2xlYXIgY2FjaGUgYWZ0ZXIgZXh0cmFjdGlvbiAtIEBkZXByZWNhdGVkIHVzZSB3aXRoQ2xlYXJPbkZpbmlzaCgpIG1ldGhvZCBpbnN0ZWFkCiAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":366,"slug":"from-all","name":"from_all","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"extractors","type":[{"name":"Extractor","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"ChainExtractor","namespace":"Flow\\ETL\\Extractor","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"EXTRACTOR"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":372,"slug":"from-memory","name":"from_memory","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"memory","type":[{"name":"Memory","namespace":"Flow\\ETL\\Memory","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"MemoryExtractor","namespace":"Flow\\ETL\\Extractor","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"EXTRACTOR"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":378,"slug":"files","name":"files","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"directory","type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"filesystem","type":[{"name":"Filesystem","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Filesystem\\Local\\NativeLocalFilesystem::..."}],"return_type":[{"name":"FilesExtractor","namespace":"Flow\\ETL\\Extractor","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"EXTRACTOR"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":384,"slug":"filesystem-cache","name":"filesystem_cache","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"serializer","type":[{"name":"Serializer","namespace":"Flow\\Serializer","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"cache_dir","type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"filesystem","type":[{"name":"Filesystem","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Filesystem\\Local\\NativeLocalFilesystem::..."}],"return_type":[{"name":"FilesystemCache","namespace":"Flow\\ETL\\Cache\\Implementation","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":396,"slug":"batched-by","name":"batched_by","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"extractor","type":[{"name":"Extractor","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"column","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"min_size","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"BatchByExtractor","namespace":"Flow\\ETL\\Extractor","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"EXTRACTOR"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBudWxsfGludDwxLCBtYXg+ICRtaW5fc2l6ZQogKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":410,"slug":"batches","name":"batches","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"extractor","type":[{"name":"Extractor","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"size","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"BatchExtractor","namespace":"Flow\\ETL\\Extractor","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"EXTRACTOR"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBpbnQ8MSwgbWF4PiAkc2l6ZQogKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":416,"slug":"from-data-frame","name":"from_data_frame","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"data_frame","type":[{"name":"DataFrame","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"DataFrameExtractor","namespace":"Flow\\ETL\\Extractor","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"EXTRACTOR"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":422,"slug":"from-sequence-date-period","name":"from_sequence_date_period","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"column_name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"start","type":[{"name":"DateTimeInterface","namespace":"","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"interval","type":[{"name":"DateInterval","namespace":"","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"end","type":[{"name":"DateTimeInterface","namespace":"","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"options","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"0"}],"return_type":[{"name":"SequenceExtractor","namespace":"Flow\\ETL\\Extractor","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"EXTRACTOR"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":436,"slug":"from-sequence-date-period-recurrences","name":"from_sequence_date_period_recurrences","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"column_name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"start","type":[{"name":"DateTimeInterface","namespace":"","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"interval","type":[{"name":"DateInterval","namespace":"","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"recurrences","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"options","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"0"}],"return_type":[{"name":"SequenceExtractor","namespace":"Flow\\ETL\\Extractor","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"EXTRACTOR"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":450,"slug":"from-sequence-number","name":"from_sequence_number","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"column_name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"start","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"end","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"step","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"1"}],"return_type":[{"name":"SequenceExtractor","namespace":"Flow\\ETL\\Extractor","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"EXTRACTOR"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":460,"slug":"to-memory","name":"to_memory","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"memory","type":[{"name":"Memory","namespace":"Flow\\ETL\\Memory","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"MemoryLoader","namespace":"Flow\\ETL\\Loader","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"LOADER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":474,"slug":"to-array","name":"to_array","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"array","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ArrayLoader","namespace":"Flow\\ETL\\Loader","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"LOADER"}},{"name":"DocumentationExample","namespace":"Flow\\Documentation\\Attribute","arguments":{"topic":"writing","example":"array"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENvbnZlcnQgcm93cyB0byBhbiBhcnJheSBhbmQgc3RvcmUgdGhlbSBpbiBwYXNzZWQgYXJyYXkgdmFyaWFibGUuCiAqCiAqIEBwYXJhbSBhcnJheTxhcnJheS1rZXksIG1peGVkPiAkYXJyYXkKICoKICogQHBhcmFtLW91dCBhcnJheTxhcnJheTxtaXhlZD4+ICRhcnJheQogKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":482,"slug":"to-output","name":"to_output","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"truncate","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"20"},{"name":"output","type":[{"name":"Output","namespace":"Flow\\ETL\\Loader\\StreamLoader","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Loader\\StreamLoader\\Output::..."},{"name":"formatter","type":[{"name":"Formatter","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Formatter\\AsciiTableFormatter::..."},{"name":"schemaFormatter","type":[{"name":"SchemaFormatter","namespace":"Flow\\ETL\\Schema","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Row\\Formatter\\ASCIISchemaFormatter::..."}],"return_type":[{"name":"StreamLoader","namespace":"Flow\\ETL\\Loader","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"LOADER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":492,"slug":"to-stderr","name":"to_stderr","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"truncate","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"20"},{"name":"output","type":[{"name":"Output","namespace":"Flow\\ETL\\Loader\\StreamLoader","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Loader\\StreamLoader\\Output::..."},{"name":"formatter","type":[{"name":"Formatter","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Formatter\\AsciiTableFormatter::..."},{"name":"schemaFormatter","type":[{"name":"SchemaFormatter","namespace":"Flow\\ETL\\Schema","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Row\\Formatter\\ASCIISchemaFormatter::..."}],"return_type":[{"name":"StreamLoader","namespace":"Flow\\ETL\\Loader","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"LOADER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":502,"slug":"to-stdout","name":"to_stdout","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"truncate","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"20"},{"name":"output","type":[{"name":"Output","namespace":"Flow\\ETL\\Loader\\StreamLoader","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Loader\\StreamLoader\\Output::..."},{"name":"formatter","type":[{"name":"Formatter","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Formatter\\AsciiTableFormatter::..."},{"name":"schemaFormatter","type":[{"name":"SchemaFormatter","namespace":"Flow\\ETL\\Schema","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Row\\Formatter\\ASCIISchemaFormatter::..."}],"return_type":[{"name":"StreamLoader","namespace":"Flow\\ETL\\Loader","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"LOADER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":512,"slug":"to-stream","name":"to_stream","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"uri","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"truncate","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"20"},{"name":"output","type":[{"name":"Output","namespace":"Flow\\ETL\\Loader\\StreamLoader","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Loader\\StreamLoader\\Output::..."},{"name":"mode","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'w'"},{"name":"formatter","type":[{"name":"Formatter","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Formatter\\AsciiTableFormatter::..."},{"name":"schemaFormatter","type":[{"name":"SchemaFormatter","namespace":"Flow\\ETL\\Schema","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Row\\Formatter\\ASCIISchemaFormatter::..."}],"return_type":[{"name":"StreamLoader","namespace":"Flow\\ETL\\Loader","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"LOADER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":532,"slug":"to-transformation","name":"to_transformation","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"transformer","type":[{"name":"Transformer","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false},{"name":"Transformation","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"sink","type":[{"name":"Loader","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false},{"name":"Sink","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Transformed","namespace":"Flow\\ETL\\Sink","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"LOADER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":538,"slug":"to-branch","name":"to_branch","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"condition","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"sink","type":[{"name":"Loader","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false},{"name":"Sink","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Branched","namespace":"Flow\\ETL\\Sink","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"LOADER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":544,"slug":"rename-style","name":"rename_style","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"style","type":[{"name":"StringStyles","namespace":"Flow\\ETL\\String","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"RenameCaseColumnStrategy","namespace":"Flow\\ETL\\Transformer\\Rename","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"TRANSFORMER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":554,"slug":"rename-replace","name":"rename_replace","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"search","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"replace","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"RenameReplaceColumnStrategy","namespace":"Flow\\ETL\\Transformer\\Rename","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"TRANSFORMER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheTxzdHJpbmc+fHN0cmluZyAkc2VhcmNoCiAqIEBwYXJhbSBhcnJheTxzdHJpbmc+fHN0cmluZyAkcmVwbGFjZQogKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":563,"slug":"rename-map","name":"rename_map","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"renames","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"RenameMapColumnStrategy","namespace":"Flow\\ETL\\Transformer\\Rename","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"TRANSFORMER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheTxhcnJheS1rZXksIHN0cmluZz4gJHJlbmFtZXMgTWFwIG9mIG9sZF9uYW1lID0+IG5ld19uYW1lCiAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":569,"slug":"rows","name":"rows","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"schema","type":[{"name":"Schema","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"backend","type":[{"name":"Backend","namespace":"Flow\\ETL\\Column","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Column\\AdaptiveBackend::..."}],"return_type":[{"name":"Rows","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":578,"slug":"col","name":"col","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"column","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"UnresolvedReference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"scalar_function_chain":true,"doc_comment":"LyoqCiAqIEFuIGFsaWFzIGZvciBgcmVmYC4KICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":585,"slug":"ref","name":"ref","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"column","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"UnresolvedReference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}},{"name":"DocumentationExample","namespace":"Flow\\Documentation\\Attribute","arguments":{"topic":"columns","example":"create"}}],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":591,"slug":"structure-ref","name":"structure_ref","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"column","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"StructureFunctions","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":603,"slug":"structure","name":"structure","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"elements","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Structure","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":"LyoqCiAqIEJ1aWxkcyBhIHN0cnVjdHVyZSBmcm9tIHNjYWxhciBmdW5jdGlvbnM6IG9uZSBlbGVtZW50IHBlciBrZXksIGluIGtleSBvcmRlci4KICogQW4gZWxlbWVudCBpcyBudWxsYWJsZSB3aGVuIGl0cyBmdW5jdGlvbiBpczsgdGhlIHN0cnVjdHVyZSBpdHNlbGYgbmV2ZXIgaXMuCiAqCiAqIEBwYXJhbSBhcnJheTxhcnJheS1rZXksIFNjYWxhckZ1bmN0aW9uPiAkZWxlbWVudHMKICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":609,"slug":"list-ref","name":"list_ref","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"column","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ListFunctions","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":615,"slug":"refs","name":"refs","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"columns","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"References","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":621,"slug":"select","name":"select","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"columns","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"Select","namespace":"Flow\\ETL\\Transformation","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"TRANSFORMER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":627,"slug":"drop","name":"drop","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"columns","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"Drop","namespace":"Flow\\ETL\\Transformation","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"TRANSFORMER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":633,"slug":"add-row-index","name":"add_row_index","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"column","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'index'"},{"name":"startFrom","type":[{"name":"StartFrom","namespace":"Flow\\ETL\\Transformation\\AddRowIndex","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Transformation\\AddRowIndex\\StartFrom::..."}],"return_type":[{"name":"AddRowIndex","namespace":"Flow\\ETL\\Transformation","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"TRANSFORMER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":642,"slug":"batch-size","name":"batch_size","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"size","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"BatchSize","namespace":"Flow\\ETL\\Transformation","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"TRANSFORMER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBpbnQ8MSwgbWF4PiAkc2l6ZQogKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":648,"slug":"limit","name":"limit","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"limit","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Limit","namespace":"Flow\\ETL\\Transformation","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"TRANSFORMER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":657,"slug":"mask-columns","name":"mask_columns","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"columns","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"mask","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'******'"}],"return_type":[{"name":"MaskColumns","namespace":"Flow\\ETL\\Transformation","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"TRANSFORMER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheTxpbnQsIHN0cmluZz4gJGNvbHVtbnMKICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":663,"slug":"optional","name":"optional","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"function","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Optional","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":670,"slug":"lit","name":"lit","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"value","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Literal","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}},{"name":"DocumentationExample","namespace":"Flow\\Documentation\\Attribute","arguments":{"topic":"columns","example":"create"}}],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":676,"slug":"exists","name":"exists","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"ref","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Exists","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":682,"slug":"when","name":"when","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"condition","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null},{"name":"then","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null},{"name":"else","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"When","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":691,"slug":"structure-get","name":"structure_get","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"ref","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"path","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ArrayGet","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":"LyoqCiAqIEFsaWFzIGZvciBgYXJyYXlfZ2V0YC4KICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":697,"slug":"array-get","name":"array_get","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"ref","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"path","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ArrayGet","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":708,"slug":"structure-get-collection","name":"structure_get_collection","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"ref","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"keys","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ArrayGetCollection","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":"LyoqCiAqIEFsaWFzIGZvciBgYXJyYXlfZ2V0X2NvbGxlY3Rpb25gLgogKgogKiBAcGFyYW0gYXJyYXk8YXJyYXkta2V5LCBtaXhlZD58U2NhbGFyRnVuY3Rpb24gJGtleXMKICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":717,"slug":"array-get-collection","name":"array_get_collection","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"ref","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"keys","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ArrayGetCollection","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheTxhcnJheS1rZXksIG1peGVkPnxTY2FsYXJGdW5jdGlvbiAka2V5cwogKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":726,"slug":"structure-get-collection-first","name":"structure_get_collection_first","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"ref","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"keys","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"ArrayGetCollection","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":"LyoqCiAqIEFsaWFzIGZvciBgYXJyYXlfZ2V0X2NvbGxlY3Rpb25fZmlyc3RgLgogKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":732,"slug":"array-get-collection-first","name":"array_get_collection_first","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"ref","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"keys","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"ArrayGetCollection","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":741,"slug":"array-exists","name":"array_exists","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"ref","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"path","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ArrayPathExists","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheTxhcnJheS1rZXksIG1peGVkPnxTY2FsYXJGdW5jdGlvbiAkcmVmCiAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":751,"slug":"array-merge","name":"array_merge","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"left","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"right","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ArrayMerge","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheTxhcnJheS1rZXksIG1peGVkPnxTY2FsYXJGdW5jdGlvbiAkbGVmdAogKiBAcGFyYW0gYXJyYXk8YXJyYXkta2V5LCBtaXhlZD58U2NhbGFyRnVuY3Rpb24gJHJpZ2h0CiAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":760,"slug":"array-merge-collection","name":"array_merge_collection","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"array","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ArrayMergeCollection","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheTxhcnJheS1rZXksIG1peGVkPnxTY2FsYXJGdW5jdGlvbiAkYXJyYXkKICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":766,"slug":"array-key-rename","name":"array_key_rename","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"ref","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"path","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"newName","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ArrayKeyRename","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":772,"slug":"array-keys-style-convert","name":"array_keys_style_convert","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"ref","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"style","type":[{"name":"StringStyles","namespace":"Flow\\ETL\\String","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\String\\StringStyles::..."}],"return_type":[{"name":"ArrayKeysStyleConvert","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":780,"slug":"array-sort","name":"array_sort","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"function","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"sort_function","type":[{"name":"Sort","namespace":"Flow\\ETL\\Function\\ArraySort","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"flags","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"recursive","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"}],"return_type":[{"name":"ArraySort","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":793,"slug":"array-reverse","name":"array_reverse","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"function","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"preserveKeys","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"ArrayReverse","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheTxhcnJheS1rZXksIG1peGVkPnxTY2FsYXJGdW5jdGlvbiAkZnVuY3Rpb24KICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":799,"slug":"now","name":"now","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"time_zone","type":[{"name":"DateTimeZone","namespace":"","is_nullable":false,"is_variadic":false},{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"DateTimeZone::..."}],"return_type":[{"name":"Now","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":805,"slug":"between","name":"between","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"value","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null},{"name":"lower_bound","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null},{"name":"upper_bound","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null},{"name":"boundary","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"Boundary","namespace":"Flow\\ETL\\Function\\Between","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Function\\Between\\Boundary::..."}],"return_type":[{"name":"Between","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":815,"slug":"to-date-time","name":"to_date_time","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"ref","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null},{"name":"format","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'Y-m-d H:i:s'"},{"name":"timeZone","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"DateTimeZone","namespace":"","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"DateTimeZone::..."}],"return_type":[{"name":"ToDateTime","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":824,"slug":"to-date","name":"to_date","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"ref","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null},{"name":"format","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'Y-m-d'"},{"name":"timeZone","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"DateTimeZone","namespace":"","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"DateTimeZone::..."}],"return_type":[{"name":"ToDate","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":833,"slug":"date-time-format","name":"date_time_format","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"ref","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"format","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"DateTimeFormat","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":839,"slug":"split","name":"split","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"value","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"separator","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"limit","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"9223372036854775807"}],"return_type":[{"name":"Split","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":852,"slug":"combine","name":"combine","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"keys","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"values","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Combine","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheTxhcnJheS1rZXksIG1peGVkPnxTY2FsYXJGdW5jdGlvbiAka2V5cwogKiBAcGFyYW0gYXJyYXk8YXJyYXkta2V5LCBtaXhlZD58U2NhbGFyRnVuY3Rpb24gJHZhbHVlcwogKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":861,"slug":"concat","name":"concat","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"functions","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"Concat","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":"LyoqCiAqIENvbmNhdCBhbGwgdmFsdWVzLiBJZiB5b3Ugd2FudCB0byBjb25jYXRlbmF0ZSB2YWx1ZXMgd2l0aCBzZXBhcmF0b3IgdXNlIGNvbmNhdF93cyBmdW5jdGlvbi4KICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":870,"slug":"concat-ws","name":"concat_ws","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"separator","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"functions","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"ConcatWithSeparator","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":"LyoqCiAqIENvbmNhdCBhbGwgdmFsdWVzIHdpdGggc2VwYXJhdG9yLgogKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":876,"slug":"hash","name":"hash","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"value","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null},{"name":"algorithm","type":[{"name":"Algorithm","namespace":"Flow\\ETL\\Hash","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Hash\\NativePHPHash::..."}],"return_type":[{"name":"Hash","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":885,"slug":"cast","name":"cast","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"value","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null},{"name":"type","type":[{"name":"Type","namespace":"Flow\\Types","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Cast","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":"LyoqCiAqIEBwYXJhbSBcRmxvd1xUeXBlc1xUeXBlPG1peGVkPnxzdHJpbmcgJHR5cGUKICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":891,"slug":"coalesce","name":"coalesce","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"values","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"Coalesce","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":897,"slug":"enum-name","name":"enum_name","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"value","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null}],"return_type":[{"name":"EnumName","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":903,"slug":"enum-value","name":"enum_value","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"value","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null}],"return_type":[{"name":"EnumValue","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":909,"slug":"count","name":"count","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"function","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Count","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"AGGREGATING_FUNCTION"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":921,"slug":"call","name":"call","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"callable","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"return_type","type":[{"name":"Type","namespace":"Flow\\Types","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"parameters","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"}],"return_type":[{"name":"CallUserFunc","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":"LyoqCiAqIENhbGxzIGEgdXNlci1kZWZpbmVkIGZ1bmN0aW9uIHdpdGggdGhlIGdpdmVuIHBhcmFtZXRlcnMuCiAqCiAqIEBwYXJhbSBUeXBlPG1peGVkPiAkcmV0dXJuX3R5cGUKICogQHBhcmFtIGFycmF5PG1peGVkPiAkcGFyYW1ldGVycwogKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":948,"slug":"array-unpack","name":"array_unpack","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"array","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"schema","type":[{"name":"Schema","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ArrayUnpack","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":"LyoqCiAqIFVucGFja3MgZWFjaCBlbGVtZW50IG9mIGFuIGFycmF5IGludG8gYSBuZXcgY29sdW1uLCB1c2luZyB0aGUgYXJyYXkga2V5IGFzIHRoZSBjb2x1bW4gbmFtZS4KICoKICogQmVmb3JlOgogKiArLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSsKICogfGlkfCAgICAgICAgICAgICAgYXJyYXl8CiAqICstLSstLS0tLS0tLS0tLS0tLS0tLS0tKwogKiB8IDF8eyJhIjoxLCJiIjoyLCJjIjozfXwKICogfCAyfHsiZCI6NCwiZSI6NSwiZiI6Nn18CiAqICstLSstLS0tLS0tLS0tLS0tLS0tLS0tKwogKgogKiBBZnRlcjoKICogKy0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKwogKiB8aWR8YXJyLmJ8YXJyLmN8YXJyLmR8YXJyLmV8YXJyLmZ8CiAqICstLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSsKICogfCAxfCAgICAyfCAgICAzfCAgICAgfCAgICAgfCAgICAgfAogKiB8IDJ8ICAgICB8ICAgICB8ICAgIDR8ICAgIDV8ICAgIDZ8CiAqICstLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSsKICoKICogQHBhcmFtIGFycmF5PGFycmF5LWtleSwgbWl4ZWQ+fFNjYWxhckZ1bmN0aW9uICRhcnJheQogKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":978,"slug":"array-expand","name":"array_expand","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"function","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"expand","type":[{"name":"ArrayExpand","namespace":"Flow\\ETL\\Function\\ArrayExpand","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Function\\ArrayExpand\\ArrayExpand::..."}],"return_type":[{"name":"ArrayExpand","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":"LyoqCiAqIEV4cGFuZHMgZWFjaCB2YWx1ZSBpbnRvIGEgY29sdW1uLCBpZiB0aGVyZSBhcmUgbW9yZSB0aGFuIG9uZSB2YWx1ZSwgbXVsdGlwbGUgcm93cyB3aWxsIGJlIGNyZWF0ZWQuCiAqIEFycmF5IGtleXMgYXJlIGlnbm9yZWQsIG9ubHkgdmFsdWVzIGFyZSB1c2VkIHRvIGNyZWF0ZSBuZXcgcm93cy4KICogTmVzdGVkIGluIGFub3RoZXIgZnVuY3Rpb24gKHN0cnVjdHVyZSgpLCBjb25jYXQoKSwgLi4uKSBpdCBzdGlsbCBnaXZlcyBvbmUgcm93IHBlciBlbGVtZW50LiBTZXZlcmFsCiAqIGV4cGFuZHMgaW4gb25lIGV4cHJlc3Npb24gYXJlIHppcHBlZCB0byB0aGUgbG9uZ2VzdCBsaXN0OyBhIHNob3J0ZXIgb25lIGdpdmVzIG51bGwsIHNvIGl0cyBlbGVtZW50CiAqIHR5cGUgYmVjb21lcyBudWxsYWJsZS4gSXQgaXMgcmVmdXNlZCBpbnNpZGUgYW5vdGhlciBhcnJheV9leHBhbmQoKSBhbmQgaW4gZmlsdGVyKCksIHVudGlsKCksCiAqIGR1cGxpY2F0ZVJvdygpLCBhZ2dyZWdhdGUoKSwgb3ZlcigpIGFuZCBvbkVhY2goKS4KICoKICogQmVmb3JlOgogKiAgICstLSstLS0tLS0tLS0tLS0tLS0tLS0tKwogKiAgIHxpZHwgICAgICAgICAgICAgIGFycmF5fAogKiAgICstLSstLS0tLS0tLS0tLS0tLS0tLS0tKwogKiAgIHwgMXx7ImEiOjEsImIiOjIsImMiOjN9fAogKiAgICstLSstLS0tLS0tLS0tLS0tLS0tLS0tKwogKgogKiBBZnRlcjoKICogICArLS0rLS0tLS0tLS0rCiAqICAgfGlkfGV4cGFuZGVkfAogKiAgICstLSstLS0tLS0tLSsKICogICB8IDF8ICAgICAgIDF8CiAqICAgfCAxfCAgICAgICAyfAogKiAgIHwgMXwgICAgICAgM3wKICogICArLS0rLS0tLS0tLS0rCiAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":984,"slug":"size","name":"size","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"value","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Size","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":990,"slug":"uuid-v4","name":"uuid_v4","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"Uuid","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":996,"slug":"uuid-v7","name":"uuid_v7","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"value","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"DateTimeInterface","namespace":"","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Uuid","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1002,"slug":"ulid","name":"ulid","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"value","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Ulid","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1008,"slug":"lower","name":"lower","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"value","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ToLower","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1014,"slug":"capitalize","name":"capitalize","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"value","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Capitalize","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1020,"slug":"upper","name":"upper","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"value","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ToUpper","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1026,"slug":"all","name":"all","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"functions","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"All","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1032,"slug":"any","name":"any","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"values","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"Any","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1038,"slug":"not","name":"not","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"value","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Not","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1044,"slug":"to-timezone","name":"to_timezone","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"value","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"DateTimeInterface","namespace":"","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"timeZone","type":[{"name":"DateTimeZone","namespace":"","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ToTimeZone","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1050,"slug":"ignore-error-handler","name":"ignore_error_handler","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"IgnoreError","namespace":"Flow\\ETL\\ErrorHandler","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1056,"slug":"skip-rows-handler","name":"skip_rows_handler","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"SkipRows","namespace":"Flow\\ETL\\ErrorHandler","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1062,"slug":"throw-error-handler","name":"throw_error_handler","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"ThrowError","namespace":"Flow\\ETL\\ErrorHandler","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1068,"slug":"regex-replace","name":"regex_replace","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"pattern","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"replacement","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"subject","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"limit","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"RegexReplace","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1078,"slug":"regex-match-all","name":"regex_match_all","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"pattern","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"subject","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"flags","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"0"},{"name":"offset","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"0"}],"return_type":[{"name":"RegexMatchAll","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1088,"slug":"regex-match","name":"regex_match","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"pattern","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"subject","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"flags","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"0"},{"name":"offset","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"0"}],"return_type":[{"name":"RegexMatch","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1098,"slug":"regex","name":"regex","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"pattern","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"subject","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"flags","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"0"},{"name":"offset","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"0"}],"return_type":[{"name":"Regex","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1108,"slug":"regex-all","name":"regex_all","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"pattern","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"subject","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"flags","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"0"},{"name":"offset","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"0"}],"return_type":[{"name":"RegexAll","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1118,"slug":"sprintf","name":"sprintf","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"format","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"args","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":true,"default_value":null}],"return_type":[{"name":"Sprintf","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1124,"slug":"sanitize","name":"sanitize","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"value","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"placeholder","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'*'"},{"name":"skipCharacters","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Sanitize","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1133,"slug":"round","name":"round","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"value","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"precision","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"2"},{"name":"mode","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"1"}],"return_type":[{"name":"Round","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1142,"slug":"number-format","name":"number_format","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"value","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"decimals","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"2"},{"name":"decimal_separator","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'.'"},{"name":"thousands_separator","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"','"}],"return_type":[{"name":"NumberFormat","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1155,"slug":"array-to-rows","name":"array_to_rows","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"data","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"schema","type":[{"name":"Schema","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"backend","type":[{"name":"Backend","namespace":"Flow\\ETL\\Column","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Column\\AdaptiveBackend::..."}],"return_type":[{"name":"Rows","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheTxhcnJheTxtaXhlZD4+fGFycmF5PG1peGVkfHN0cmluZz4gJGRhdGEKICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1163,"slug":"rank","name":"rank","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"Rank","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"WINDOW_FUNCTION"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1169,"slug":"dens-rank","name":"dens_rank","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"DenseRank","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"WINDOW_FUNCTION"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1175,"slug":"dense-rank","name":"dense_rank","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"DenseRank","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"WINDOW_FUNCTION"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1181,"slug":"average","name":"average","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"ref","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"scale","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"2"},{"name":"rounding","type":[{"name":"Rounding","namespace":"Flow\\Calculator","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Calculator\\Rounding::..."},{"name":"exact","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"Average","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"AGGREGATING_FUNCTION"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1191,"slug":"greatest","name":"greatest","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"values","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":true,"default_value":null}],"return_type":[{"name":"Greatest","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1197,"slug":"least","name":"least","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"values","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":true,"default_value":null}],"return_type":[{"name":"Least","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1203,"slug":"collect","name":"collect","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"ref","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Collect","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"AGGREGATING_FUNCTION"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1209,"slug":"string-agg","name":"string_agg","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"ref","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"separator","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"', '"},{"name":"sort","type":[{"name":"SortOrder","namespace":"Flow\\ETL\\Row","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"StringAggregate","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"AGGREGATING_FUNCTION"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1215,"slug":"collect-unique","name":"collect_unique","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"ref","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"CollectUnique","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"AGGREGATING_FUNCTION"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1221,"slug":"window","name":"window","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"Window","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1227,"slug":"unbounded-preceding","name":"unbounded_preceding","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"FrameBound","namespace":"Flow\\ETL\\Window","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1233,"slug":"preceding","name":"preceding","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"offset","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"FrameBound","namespace":"Flow\\ETL\\Window","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1239,"slug":"current-row","name":"current_row","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"FrameBound","namespace":"Flow\\ETL\\Window","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1245,"slug":"following","name":"following","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"offset","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"FrameBound","namespace":"Flow\\ETL\\Window","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1251,"slug":"unbounded-following","name":"unbounded_following","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"FrameBound","namespace":"Flow\\ETL\\Window","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1257,"slug":"sum","name":"sum","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"ref","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"exact","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"Sum","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"AGGREGATING_FUNCTION"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1263,"slug":"first","name":"first","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"ref","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"First","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"AGGREGATING_FUNCTION"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1269,"slug":"last","name":"last","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"ref","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Last","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"AGGREGATING_FUNCTION"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1275,"slug":"max","name":"max","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"ref","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Max","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"AGGREGATING_FUNCTION"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1281,"slug":"min","name":"min","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"ref","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Min","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"AGGREGATING_FUNCTION"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1287,"slug":"row-number","name":"row_number","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"RowNumber","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1298,"slug":"schema","name":"schema","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"definitions","type":[{"name":"Definition","namespace":"Flow\\ETL\\Schema","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"Schema","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBEZWZpbml0aW9uPG1peGVkPiAuLi4kZGVmaW5pdGlvbnMKICoKICogQHJldHVybiBTY2hlbWEKICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1307,"slug":"schema-to-json","name":"schema_to_json","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"schema","type":[{"name":"Schema","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"pretty","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBTY2hlbWEgJHNjaGVtYQogKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1316,"slug":"schema-to-php","name":"schema_to_php","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"schema","type":[{"name":"Schema","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"valueFormatter","type":[{"name":"ValueFormatter","namespace":"Flow\\ETL\\Schema\\Formatter\\PHPFormatter","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Schema\\Formatter\\PHPFormatter\\ValueFormatter::..."},{"name":"typeFormatter","type":[{"name":"TypeFormatter","namespace":"Flow\\ETL\\Schema\\Formatter\\PHPFormatter","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Schema\\Formatter\\PHPFormatter\\TypeFormatter::..."}],"return_type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBTY2hlbWEgJHNjaGVtYQogKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1328,"slug":"schema-to-ascii","name":"schema_to_ascii","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"schema","type":[{"name":"Schema","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"formatter","type":[{"name":"SchemaFormatter","namespace":"Flow\\ETL\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBTY2hlbWEgJHNjaGVtYQogKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1338,"slug":"schema-validate","name":"schema_validate","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"expected","type":[{"name":"Schema","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"given","type":[{"name":"Schema","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"validator","type":[{"name":"SchemaValidator","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Schema\\Validator\\StrictValidator::..."}],"return_type":[{"name":"ValidationContext","namespace":"Flow\\ETL\\Schema\\Validator","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBTY2hlbWEgJGV4cGVjdGVkCiAqIEBwYXJhbSBTY2hlbWEgJGdpdmVuCiAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1347,"slug":"schema-evolving-validator","name":"schema_evolving_validator","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"EvolvingValidator","namespace":"Flow\\ETL\\Schema\\Validator","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1353,"slug":"schema-strict-validator","name":"schema_strict_validator","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"StrictValidator","namespace":"Flow\\ETL\\Schema\\Validator","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1359,"slug":"schema-selective-validator","name":"schema_selective_validator","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"SelectiveValidator","namespace":"Flow\\ETL\\Schema\\Validator","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1368,"slug":"schema-from-json","name":"schema_from_json","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"schema","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Schema","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEByZXR1cm4gU2NoZW1hCiAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1381,"slug":"schema-metadata","name":"schema_metadata","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"metadata","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"}],"return_type":[{"name":"Metadata","namespace":"Flow\\ETL\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheTxzdHJpbmcsIGFycmF5PGJvb2x8ZmxvYXR8aW50fHN0cmluZz58Ym9vbHxmbG9hdHxpbnR8c3RyaW5nPiAkbWV0YWRhdGEKICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1390,"slug":"int-schema","name":"int_schema","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"metadata","type":[{"name":"Metadata","namespace":"Flow\\ETL\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"IntegerDefinition","namespace":"Flow\\ETL\\Schema\\Definition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEFsaWFzIGZvciBgaW50ZWdlcl9zY2hlbWFgLgogKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1396,"slug":"integer-schema","name":"integer_schema","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"metadata","type":[{"name":"Metadata","namespace":"Flow\\ETL\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"IntegerDefinition","namespace":"Flow\\ETL\\Schema\\Definition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1405,"slug":"str-schema","name":"str_schema","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"metadata","type":[{"name":"Metadata","namespace":"Flow\\ETL\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"StringDefinition","namespace":"Flow\\ETL\\Schema\\Definition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEFsaWFzIGZvciBgc3RyaW5nX3NjaGVtYWAuCiAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1411,"slug":"string-schema","name":"string_schema","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"metadata","type":[{"name":"Metadata","namespace":"Flow\\ETL\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"StringDefinition","namespace":"Flow\\ETL\\Schema\\Definition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1417,"slug":"bool-schema","name":"bool_schema","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"metadata","type":[{"name":"Metadata","namespace":"Flow\\ETL\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"BooleanDefinition","namespace":"Flow\\ETL\\Schema\\Definition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1423,"slug":"float-schema","name":"float_schema","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"metadata","type":[{"name":"Metadata","namespace":"Flow\\ETL\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"FloatDefinition","namespace":"Flow\\ETL\\Schema\\Definition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1437,"slug":"map-schema","name":"map_schema","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"type","type":[{"name":"MapType","namespace":"Flow\\Types\\Type\\Logical","is_nullable":false,"is_variadic":false},{"name":"Type","namespace":"Flow\\Types","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"metadata","type":[{"name":"Metadata","namespace":"Flow\\ETL\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"MapDefinition","namespace":"Flow\\ETL\\Schema\\Definition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEB0ZW1wbGF0ZSBUS2V5IG9mIGFycmF5LWtleQogKiBAdGVtcGxhdGUgVFZhbHVlCiAqCiAqIEBwYXJhbSBNYXBUeXBlPFRLZXksIFRWYWx1ZT58VHlwZTxhcnJheTxUS2V5LCBUVmFsdWU+PiAkdHlwZQogKgogKiBAcmV0dXJuIE1hcERlZmluaXRpb248VEtleSwgVFZhbHVlPgogKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1451,"slug":"list-schema","name":"list_schema","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"type","type":[{"name":"ListType","namespace":"Flow\\Types\\Type\\Logical","is_nullable":false,"is_variadic":false},{"name":"Type","namespace":"Flow\\Types","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"metadata","type":[{"name":"Metadata","namespace":"Flow\\ETL\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"ListDefinition","namespace":"Flow\\ETL\\Schema\\Definition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEB0ZW1wbGF0ZSBUCiAqCiAqIEBwYXJhbSBMaXN0VHlwZTxUPnxUeXBlPGxpc3Q8VD4+ICR0eXBlCiAqCiAqIEByZXR1cm4gTGlzdERlZmluaXRpb248VD4KICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1469,"slug":"enum-schema","name":"enum_schema","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"type","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"metadata","type":[{"name":"Metadata","namespace":"Flow\\ETL\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"EnumDefinition","namespace":"Flow\\ETL\\Schema\\Definition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEB0ZW1wbGF0ZSBUIG9mIFxVbml0RW51bQogKgogKiBAcGFyYW0gY2xhc3Mtc3RyaW5nPFQ+ICR0eXBlCiAqCiAqIEByZXR1cm4gRW51bURlZmluaXRpb248VD4KICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1475,"slug":"null-schema","name":"null_schema","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"metadata","type":[{"name":"Metadata","namespace":"Flow\\ETL\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"NullDefinition","namespace":"Flow\\ETL\\Schema\\Definition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1481,"slug":"datetime-schema","name":"datetime_schema","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"metadata","type":[{"name":"Metadata","namespace":"Flow\\ETL\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"zone","type":[{"name":"DateTimeZone","namespace":"","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'UTC'"}],"return_type":[{"name":"DateTimeDefinition","namespace":"Flow\\ETL\\Schema\\Definition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1491,"slug":"time-schema","name":"time_schema","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"metadata","type":[{"name":"Metadata","namespace":"Flow\\ETL\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"TimeDefinition","namespace":"Flow\\ETL\\Schema\\Definition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1497,"slug":"date-schema","name":"date_schema","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"metadata","type":[{"name":"Metadata","namespace":"Flow\\ETL\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"DateDefinition","namespace":"Flow\\ETL\\Schema\\Definition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1503,"slug":"json-schema","name":"json_schema","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"metadata","type":[{"name":"Metadata","namespace":"Flow\\ETL\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"JsonDefinition","namespace":"Flow\\ETL\\Schema\\Definition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1509,"slug":"html-schema","name":"html_schema","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"metadata","type":[{"name":"Metadata","namespace":"Flow\\ETL\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"HTMLDefinition","namespace":"Flow\\ETL\\Schema\\Definition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1515,"slug":"html-element-schema","name":"html_element_schema","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"metadata","type":[{"name":"Metadata","namespace":"Flow\\ETL\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"HTMLElementDefinition","namespace":"Flow\\ETL\\Schema\\Definition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1521,"slug":"xml-schema","name":"xml_schema","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"metadata","type":[{"name":"Metadata","namespace":"Flow\\ETL\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"XMLDefinition","namespace":"Flow\\ETL\\Schema\\Definition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1527,"slug":"xml-element-schema","name":"xml_element_schema","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"metadata","type":[{"name":"Metadata","namespace":"Flow\\ETL\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"XMLElementDefinition","namespace":"Flow\\ETL\\Schema\\Definition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1540,"slug":"structure-schema","name":"structure_schema","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"type","type":[{"name":"StructureType","namespace":"Flow\\Types\\Type\\Logical","is_nullable":false,"is_variadic":false},{"name":"Type","namespace":"Flow\\Types","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"metadata","type":[{"name":"Metadata","namespace":"Flow\\ETL\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"StructureDefinition","namespace":"Flow\\ETL\\Schema\\Definition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEB0ZW1wbGF0ZSBUCiAqCiAqIEBwYXJhbSBTdHJ1Y3R1cmVUeXBlPGFycmF5PGFycmF5LWtleSwgVD4+fFR5cGU8YXJyYXk8YXJyYXkta2V5LCBUPj4gJHR5cGUKICoKICogQHJldHVybiBTdHJ1Y3R1cmVEZWZpbml0aW9uPFQ+CiAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1551,"slug":"uuid-schema","name":"uuid_schema","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"metadata","type":[{"name":"Metadata","namespace":"Flow\\ETL\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"UuidDefinition","namespace":"Flow\\ETL\\Schema\\Definition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1557,"slug":"time-zone-schema","name":"time_zone_schema","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"metadata","type":[{"name":"Metadata","namespace":"Flow\\ETL\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"TimeZoneDefinition","namespace":"Flow\\ETL\\Schema\\Definition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1570,"slug":"definition-from-array","name":"definition_from_array","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"definition","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Definition","namespace":"Flow\\ETL\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIERlZmluaXRpb24gZnJvbSBhbiBhcnJheSByZXByZXNlbnRhdGlvbi4KICoKICogQHBhcmFtIGFycmF5PGFycmF5LWtleSwgbWl4ZWQ+ICRkZWZpbml0aW9uCiAqCiAqIEByZXR1cm4gRGVmaW5pdGlvbjxtaXhlZD4KICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1603,"slug":"definition-from-type","name":"definition_from_type","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"ref","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"type","type":[{"name":"Type","namespace":"Flow\\Types","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"metadata","type":[{"name":"Metadata","namespace":"Flow\\ETL\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Definition","namespace":"Flow\\ETL\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIERlZmluaXRpb24gZnJvbSBhIFR5cGUuCiAqCiAqIEBwYXJhbSBUeXBlPG1peGVkPiAkdHlwZQogKgogKiBAcmV0dXJuIERlZmluaXRpb248bWl4ZWQ+CiAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1656,"slug":"infer-schema","name":"infer_schema","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"SchemaInferenceBuilder","namespace":"Flow\\ETL\\Schema\\Inference","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1662,"slug":"execution-context","name":"execution_context","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"config","type":[{"name":"Config","namespace":"Flow\\ETL","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"FlowContext","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1668,"slug":"flow-context","name":"flow_context","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"config","type":[{"name":"Config","namespace":"Flow\\ETL","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"FlowContext","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1674,"slug":"config","name":"config","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"Config","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1680,"slug":"config-builder","name":"config_builder","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"ConfigBuilder","namespace":"Flow\\ETL\\Config","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1686,"slug":"memory-sort","name":"memory_sort","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"MemorySortBuilder","namespace":"Flow\\ETL\\Config\\Sort","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1692,"slug":"external-sort","name":"external_sort","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"ExternalSortBuilder","namespace":"Flow\\ETL\\Config\\Sort","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1698,"slug":"hash-join","name":"hash_join","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"HashJoinBuilder","namespace":"Flow\\ETL\\Config\\Join","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1704,"slug":"hash-group-by","name":"hash_group_by","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"HashGroupByBuilder","namespace":"Flow\\ETL\\Config\\Grouping","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1710,"slug":"hash-repartition","name":"hash_repartition","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"HashRepartitionBuilder","namespace":"Flow\\ETL\\Config\\Repartition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1719,"slug":"pivot-values","name":"pivot_values","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"values","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"DeclaredPivotValues","namespace":"Flow\\ETL\\GroupBy","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIERlY2xhcmVzIHRoZSBwaXZvdCBjb2x1bW5zIGEgZ3JvdXBCeSgpLT5waXZvdCgpIHByb2R1Y2VzLCBzbyB0aGUgcGxhbiBjYW4gbmFtZSB0aGVtIGJlZm9yZSBhIHJvdyBmbG93cy4KICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1729,"slug":"discover-pivot-values","name":"discover_pivot_values","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"maxValues","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"10000"}],"return_type":[{"name":"DiscoveredPivotValues","namespace":"Flow\\ETL\\GroupBy","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIFJlYWRzIHRoZSBwaXZvdCBjb2x1bW4gb25jZSBhdCBidWlsZCB0aW1lIGFuZCB0dXJucyB3aGF0IGl0IGZpbmRzIGludG8gZGVjbGFyZWQgdmFsdWVzLiBSZWZ1c2VzIGEKICogc291cmNlIHRoYXQgY2Fubm90IGJlIHJlYWQgdHdpY2UuCiAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1735,"slug":"partition-by","name":"partition_by","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"column","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"columns","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"Partitioning","namespace":"Flow\\ETL\\Loader","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"LOADER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1744,"slug":"partition-types","name":"partition_types","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"types","type":[{"name":"Type","namespace":"Flow\\Types","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"PartitionTypes","namespace":"Flow\\ETL\\Extractor\\File","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"EXTRACTOR"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBUeXBlPG1peGVkPiAuLi4kdHlwZXMgcGFydGl0aW9uIGNvbHVtbiBuYW1lID0+IHR5cGUsIHBhc3NlZCBhcyBuYW1lZCBhcmd1bWVudHMKICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1754,"slug":"overwrite","name":"overwrite","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"SaveMode","namespace":"Flow\\ETL\\Filesystem","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEFsaWFzIGZvciBzYXZlX21vZGVfb3ZlcndyaXRlKCkuCiAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1760,"slug":"save-mode-overwrite","name":"save_mode_overwrite","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"SaveMode","namespace":"Flow\\ETL\\Filesystem","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1769,"slug":"ignore","name":"ignore","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"SaveMode","namespace":"Flow\\ETL\\Filesystem","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEFsaWFzIGZvciBzYXZlX21vZGVfaWdub3JlKCkuCiAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1775,"slug":"save-mode-ignore","name":"save_mode_ignore","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"SaveMode","namespace":"Flow\\ETL\\Filesystem","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1784,"slug":"exception-if-exists","name":"exception_if_exists","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"SaveMode","namespace":"Flow\\ETL\\Filesystem","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEFsaWFzIGZvciBzYXZlX21vZGVfZXhjZXB0aW9uX2lmX2V4aXN0cygpLgogKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1790,"slug":"save-mode-exception-if-exists","name":"save_mode_exception_if_exists","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"SaveMode","namespace":"Flow\\ETL\\Filesystem","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1799,"slug":"append","name":"append","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"SaveMode","namespace":"Flow\\ETL\\Filesystem","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEFsaWFzIGZvciBzYXZlX21vZGVfYXBwZW5kKCkuCiAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1805,"slug":"save-mode-append","name":"save_mode_append","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"SaveMode","namespace":"Flow\\ETL\\Filesystem","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1811,"slug":"print-rows","name":"print_rows","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"rows","type":[{"name":"Rows","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"truncate","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"formatter","type":[{"name":"Formatter","namespace":"Flow\\ETL","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1817,"slug":"identical","name":"identical","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"left","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"right","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Identical","namespace":"Flow\\ETL\\Join\\Comparison","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"COMPARISON"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1823,"slug":"equal","name":"equal","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"left","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"right","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Equal","namespace":"Flow\\ETL\\Join\\Comparison","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"COMPARISON"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1829,"slug":"compare-all","name":"compare_all","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"comparison","type":[{"name":"Comparison","namespace":"Flow\\ETL\\Join","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"comparisons","type":[{"name":"Comparison","namespace":"Flow\\ETL\\Join","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"All","namespace":"Flow\\ETL\\Join\\Comparison","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"COMPARISON"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1835,"slug":"compare-any","name":"compare_any","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"comparison","type":[{"name":"Comparison","namespace":"Flow\\ETL\\Join","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"comparisons","type":[{"name":"Comparison","namespace":"Flow\\ETL\\Join","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"Any","namespace":"Flow\\ETL\\Join\\Comparison","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"COMPARISON"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1846,"slug":"join-on","name":"join_on","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"comparisons","type":[{"name":"Comparison","namespace":"Flow\\ETL\\Join","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"join_prefix","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"''"}],"return_type":[{"name":"Expression","namespace":"Flow\\ETL\\Join","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}},{"name":"DocumentationExample","namespace":"Flow\\Documentation\\Attribute","arguments":{"topic":"joins","example":"join"}},{"name":"DocumentationExample","namespace":"Flow\\Documentation\\Attribute","arguments":{"topic":"joins","example":"join_each"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheTxDb21wYXJpc29ufHN0cmluZz58Q29tcGFyaXNvbiAkY29tcGFyaXNvbnMKICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1852,"slug":"schema-sort-by-name","name":"schema_sort_by_name","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"order","type":[{"name":"SortOrder","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Row\\SortOrder::..."}],"return_type":[{"name":"SortingStrategy","namespace":"Flow\\ETL\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1861,"slug":"schema-sort-by-type","name":"schema_sort_by_type","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"priorities","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[...]"},{"name":"order","type":[{"name":"SortOrder","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Row\\SortOrder::..."}],"return_type":[{"name":"SortingStrategy","namespace":"Flow\\ETL\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheTxjbGFzcy1zdHJpbmc8VHlwZTxtaXhlZD4+LCBpbnQ+ICRwcmlvcml0aWVzCiAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1872,"slug":"schema-sort-by-type-and-name","name":"schema_sort_by_type_and_name","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"priorities","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[...]"},{"name":"order","type":[{"name":"SortOrder","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Row\\SortOrder::..."}],"return_type":[{"name":"SortingStrategy","namespace":"Flow\\ETL\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheTxjbGFzcy1zdHJpbmc8VHlwZTxtaXhlZD4+LCBpbnQ+ICRwcmlvcml0aWVzCiAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1883,"slug":"schema-sort-by-metadata","name":"schema_sort_by_metadata","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"key","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"order","type":[{"name":"SortOrder","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Row\\SortOrder::..."}],"return_type":[{"name":"SortingStrategy","namespace":"Flow\\ETL\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCHEMA"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1893,"slug":"is-type","name":"is_type","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"type","type":[{"name":"Type","namespace":"Flow\\Types","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"value","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null}],"return_type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheTxzdHJpbmd8VHlwZTxtaXhlZD4+fFR5cGU8bWl4ZWQ+ICR0eXBlCiAqIEBwYXJhbSBtaXhlZCAkdmFsdWUKICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1927,"slug":"generate-random-string","name":"generate_random_string","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"length","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"32"},{"name":"generator","type":[{"name":"RandomValueGenerator","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\NativePHPRandomValueGenerator::..."}],"return_type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1935,"slug":"generate-random-int","name":"generate_random_int","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"start","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"-9223372036854775808"},{"name":"end","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"9223372036854775807"},{"name":"generator","type":[{"name":"RandomValueGenerator","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\NativePHPRandomValueGenerator::..."}],"return_type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1944,"slug":"random-string","name":"random_string","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"length","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"generator","type":[{"name":"RandomValueGenerator","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\NativePHPRandomValueGenerator::..."}],"return_type":[{"name":"RandomString","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"DATA_FRAME"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1952,"slug":"date-interval-to-milliseconds","name":"date_interval_to_milliseconds","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"interval","type":[{"name":"DateInterval","namespace":"","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1969,"slug":"date-interval-to-seconds","name":"date_interval_to_seconds","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"interval","type":[{"name":"DateInterval","namespace":"","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":1986,"slug":"date-interval-to-microseconds","name":"date_interval_to_microseconds","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"interval","type":[{"name":"DateInterval","namespace":"","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":2003,"slug":"with-column","name":"with_column","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"function","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"WithColumn","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":2009,"slug":"constraint-unique","name":"constraint_unique","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"reference","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"references","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"UniqueConstraint","namespace":"Flow\\ETL\\Constraint","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":2015,"slug":"constraint-sorted-by","name":"constraint_sorted_by","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"column","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"columns","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"SortedByConstraint","namespace":"Flow\\ETL\\Constraint","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":2025,"slug":"analyze","name":"analyze","namespace":"Flow\\ETL\\DSL","parameters":[],"return_type":[{"name":"Analyze","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":2034,"slug":"match-cases","name":"match_cases","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"cases","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"default","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"MatchCases","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":true,"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheTxNYXRjaENvbmRpdGlvbj4gJGNhc2VzCiAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":2040,"slug":"match-condition","name":"match_condition","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"condition","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null},{"name":"then","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null}],"return_type":[{"name":"MatchCondition","namespace":"Flow\\ETL\\Function\\MatchCases","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"SCALAR_FUNCTION"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DSL\/functions.php","start_line_in_file":2046,"slug":"clock","name":"clock","namespace":"Flow\\ETL\\DSL","parameters":[{"name":"time_zone","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'UTC'"}],"return_type":[{"name":"ClockInterface","namespace":"Psr\\Clock","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/Floe\/DSL\/functions.php","start_line_in_file":31,"slug":"from-floe","name":"from_floe","namespace":"Flow\\Floe\\DSL","parameters":[{"name":"path","type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"codec","type":[{"name":"Codec","namespace":"Flow\\Floe","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Floe\\Codec\\NoopCodec::..."},{"name":"chunk_size","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"65536"},{"name":"filesystem","type":[{"name":"Filesystem","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Filesystem\\Local\\NativeLocalFilesystem::..."}],"return_type":[{"name":"FloeExtractor","namespace":"Flow\\Floe","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"FLOE","type":"EXTRACTOR"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBQYXRofHN0cmluZyAkcGF0aAogKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/Floe\/DSL\/functions.php","start_line_in_file":44,"slug":"to-floe","name":"to_floe","namespace":"Flow\\Floe\\DSL","parameters":[{"name":"path","type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"metadata","type":[{"name":"Metadata","namespace":"Flow\\ETL\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"options","type":[{"name":"Options","namespace":"Flow\\Floe","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Floe\\Options::..."},{"name":"filesystem","type":[{"name":"Filesystem","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Filesystem\\Local\\NativeLocalFilesystem::..."}],"return_type":[{"name":"FloeLoader","namespace":"Flow\\Floe","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"FLOE","type":"LOADER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBQYXRofHN0cmluZyAkcGF0aAogKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/Floe\/DSL\/functions.php","start_line_in_file":54,"slug":"floe-options","name":"floe_options","namespace":"Flow\\Floe\\DSL","parameters":[{"name":"buffer_size","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"65536"},{"name":"codec","type":[{"name":"Codec","namespace":"Flow\\Floe","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Floe\\Codec\\NoopCodec::..."}],"return_type":[{"name":"Options","namespace":"Flow\\Floe","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"FLOE","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/Floe\/DSL\/functions.php","start_line_in_file":66,"slug":"merge-floe","name":"merge_floe","namespace":"Flow\\Floe\\DSL","parameters":[{"name":"sources","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"dest","type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"backend","type":[{"name":"Backend","namespace":"Flow\\ETL\\Column","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"compact","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"metadata","type":[{"name":"Metadata","namespace":"Flow\\ETL\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"filesystem","type":[{"name":"Filesystem","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Filesystem\\Local\\NativeLocalFilesystem::..."}],"return_type":[{"name":"void","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"FLOE","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIE1lcmdlcyBzZXZlcmFsIEZsb2UgZmlsZXMgKHNhbWUgb3IgYXBwZW5kLWNvbXBhdGlibGUgZXZvbHZpbmcgc2NoZW1hKSBpbnRvIG9uZS4gQnl0ZS1zcGxpY2VzIGZyYW1lCiAqIHJlZ2lvbnMgYnkgZGVmYXVsdCAoTyhieXRlcyksIG5vIHJlLWVuY29kZSk7IGNvbXBhY3QgcmUtZW5jb2RlcyBhbGwgcm93cyBpbnRvIGZld2VyIHNlY3Rpb25zLgogKgogKiBAcGFyYW0gYXJyYXk8aW50LCBQYXRofHN0cmluZz4gJHNvdXJjZXMKICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/Serializer\/DSL\/functions.php","start_line_in_file":18,"slug":"serialize-to-string","name":"serialize_to_string","namespace":"Flow\\Serializer\\DSL","parameters":[{"name":"serializer","type":[{"name":"Serializer","namespace":"Flow\\Serializer","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"rows","type":[{"name":"Rows","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/Serializer\/DSL\/functions.php","start_line_in_file":27,"slug":"unserialize-from-string","name":"unserialize_from_string","namespace":"Flow\\Serializer\\DSL","parameters":[{"name":"serializer","type":[{"name":"Serializer","namespace":"Flow\\Serializer","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"payload","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Rows","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CORE","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-avro\/src\/Flow\/ETL\/Adapter\/Avro\/functions.php","start_line_in_file":21,"slug":"from-avro","name":"from_avro","namespace":"Flow\\ETL\\DSL\\Adapter\\Avro","parameters":[{"name":"path","type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"filesystem","type":[{"name":"Filesystem","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Filesystem\\Local\\NativeLocalFilesystem::..."}],"return_type":[{"name":"AvroExtractor","namespace":"Flow\\ETL\\Adapter\\Avro\\FlixTech","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"AVRO","type":"EXTRACTOR"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-avro\/src\/Flow\/ETL\/Adapter\/Avro\/functions.php","start_line_in_file":27,"slug":"to-avro","name":"to_avro","namespace":"Flow\\ETL\\DSL\\Adapter\\Avro","parameters":[{"name":"path","type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"schema","type":[{"name":"Schema","namespace":"Flow\\ETL","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"filesystem","type":[{"name":"Filesystem","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Filesystem\\Local\\NativeLocalFilesystem::..."}],"return_type":[{"name":"AvroLoader","namespace":"Flow\\ETL\\Adapter\\Avro\\FlixTech","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"AVRO","type":"LOADER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-chartjs\/src\/Flow\/ETL\/Adapter\/ChartJS\/functions.php","start_line_in_file":23,"slug":"bar-chart","name":"bar_chart","namespace":"Flow\\ETL\\Adapter\\ChartJS","parameters":[{"name":"label","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"datasets","type":[{"name":"References","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"BarChart","namespace":"Flow\\ETL\\Adapter\\ChartJS\\Chart","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CHART_JS","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-chartjs\/src\/Flow\/ETL\/Adapter\/ChartJS\/functions.php","start_line_in_file":29,"slug":"line-chart","name":"line_chart","namespace":"Flow\\ETL\\Adapter\\ChartJS","parameters":[{"name":"label","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"datasets","type":[{"name":"References","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"LineChart","namespace":"Flow\\ETL\\Adapter\\ChartJS\\Chart","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CHART_JS","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-chartjs\/src\/Flow\/ETL\/Adapter\/ChartJS\/functions.php","start_line_in_file":35,"slug":"pie-chart","name":"pie_chart","namespace":"Flow\\ETL\\Adapter\\ChartJS","parameters":[{"name":"label","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"datasets","type":[{"name":"References","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"PieChart","namespace":"Flow\\ETL\\Adapter\\ChartJS\\Chart","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CHART_JS","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-chartjs\/src\/Flow\/ETL\/Adapter\/ChartJS\/functions.php","start_line_in_file":41,"slug":"to-chartjs","name":"to_chartjs","namespace":"Flow\\ETL\\Adapter\\ChartJS","parameters":[{"name":"type","type":[{"name":"Chart","namespace":"Flow\\ETL\\Adapter\\ChartJS","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ChartJSLoader","namespace":"Flow\\ETL\\Adapter\\ChartJS","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CHART_JS","type":"LOADER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-chartjs\/src\/Flow\/ETL\/Adapter\/ChartJS\/functions.php","start_line_in_file":52,"slug":"to-chartjs-file","name":"to_chartjs_file","namespace":"Flow\\ETL\\Adapter\\ChartJS","parameters":[{"name":"type","type":[{"name":"Chart","namespace":"Flow\\ETL\\Adapter\\ChartJS","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"output","type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"template","type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"filesystem","type":[{"name":"Filesystem","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Filesystem\\Local\\NativeLocalFilesystem::..."}],"return_type":[{"name":"ChartJSLoader","namespace":"Flow\\ETL\\Adapter\\ChartJS","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CHART_JS","type":"LOADER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBDaGFydCAkdHlwZQogKiBAcGFyYW0gbnVsbHxQYXRofHN0cmluZyAkb3V0cHV0IC0gQGRlcHJlY2F0ZWQgdXNlICRsb2FkZXItPndpdGhPdXRwdXRQYXRoKCkgaW5zdGVhZAogKiBAcGFyYW0gbnVsbHxQYXRofHN0cmluZyAkdGVtcGxhdGUgLSBAZGVwcmVjYXRlZCB1c2UgJGxvYWRlci0+d2l0aFRlbXBsYXRlKCkgaW5zdGVhZAogKi8="},{"repository_path":"src\/adapter\/etl-adapter-chartjs\/src\/Flow\/ETL\/Adapter\/ChartJS\/functions.php","start_line_in_file":84,"slug":"to-chartjs-var","name":"to_chartjs_var","namespace":"Flow\\ETL\\Adapter\\ChartJS","parameters":[{"name":"type","type":[{"name":"Chart","namespace":"Flow\\ETL\\Adapter\\ChartJS","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"output","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ChartJSLoader","namespace":"Flow\\ETL\\Adapter\\ChartJS","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CHART_JS","type":"LOADER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBDaGFydCAkdHlwZQogKiBAcGFyYW0gYXJyYXk8YXJyYXkta2V5LCBtaXhlZD4gJG91dHB1dCAtIEBkZXByZWNhdGVkIHVzZSAkbG9hZGVyLT53aXRoT3V0cHV0VmFyKCkgaW5zdGVhZAogKi8="},{"repository_path":"src\/adapter\/etl-adapter-csv\/src\/Flow\/ETL\/Adapter\/CSV\/functions.php","start_line_in_file":35,"slug":"from-csv","name":"from_csv","namespace":"Flow\\ETL\\Adapter\\CSV","parameters":[{"name":"path","type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"with_header","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"empty_to_null","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"separator","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"enclosure","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"escape","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"characters_read_in_line","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"10485760"},{"name":"schema","type":[{"name":"Schema","namespace":"Flow\\ETL","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"filesystem","type":[{"name":"Filesystem","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Filesystem\\Local\\NativeLocalFilesystem::..."}],"return_type":[{"name":"CSVExtractor","namespace":"Flow\\ETL\\Adapter\\CSV","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CSV","type":"EXTRACTOR"}},{"name":"DocumentationExample","namespace":"Flow\\Documentation\\Attribute","arguments":{"topic":"reading","example":"csv"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBQYXRofHN0cmluZyAkcGF0aAogKiBAcGFyYW0gYm9vbCAkZW1wdHlfdG9fbnVsbCAtIEBkZXByZWNhdGVkIHVzZSAkbG9hZGVyLT53aXRoRW1wdHlUb051bGwoKSBpbnN0ZWFkCiAqIEBwYXJhbSBib29sICR3aXRoX2hlYWRlciAtIEBkZXByZWNhdGVkIHVzZSAkbG9hZGVyLT53aXRoSGVhZGVyKCkgaW5zdGVhZAogKiBAcGFyYW0gbnVsbHxzdHJpbmcgJHNlcGFyYXRvciAtIEBkZXByZWNhdGVkIHVzZSAkbG9hZGVyLT53aXRoU2VwYXJhdG9yKCkgaW5zdGVhZAogKiBAcGFyYW0gbnVsbHxzdHJpbmcgJGVuY2xvc3VyZSAtIEBkZXByZWNhdGVkIHVzZSAkbG9hZGVyLT53aXRoRW5jbG9zdXJlKCkgaW5zdGVhZAogKiBAcGFyYW0gbnVsbHxzdHJpbmcgJGVzY2FwZSAtIEBkZXByZWNhdGVkIHVzZSAkbG9hZGVyLT53aXRoRXNjYXBlKCkgaW5zdGVhZAogKiBAcGFyYW0gaW50PDEsIG1heD4gJGNoYXJhY3RlcnNfcmVhZF9pbl9saW5lIC0gQGRlcHJlY2F0ZWQgdXNlICRsb2FkZXItPndpdGhDaGFyYWN0ZXJzUmVhZEluTGluZSgpIGluc3RlYWQKICogQHBhcmFtIG51bGx8U2NoZW1hICRzY2hlbWEgLSBAZGVwcmVjYXRlZCB1c2UgJGxvYWRlci0+d2l0aFNjaGVtYSgpIGluc3RlYWQKICov"},{"repository_path":"src\/adapter\/etl-adapter-csv\/src\/Flow\/ETL\/Adapter\/CSV\/functions.php","start_line_in_file":80,"slug":"to-csv","name":"to_csv","namespace":"Flow\\ETL\\Adapter\\CSV","parameters":[{"name":"uri","type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"with_header","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"separator","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"','"},{"name":"enclosure","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'\\\"'"},{"name":"escape","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'\\\\'"},{"name":"new_line_separator","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'\\n'"},{"name":"datetime_format","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'Y-m-d\\\\TH:i:sP'"},{"name":"filesystem","type":[{"name":"Filesystem","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Filesystem\\Local\\NativeLocalFilesystem::..."}],"return_type":[{"name":"CSVLoader","namespace":"Flow\\ETL\\Adapter\\CSV","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CSV","type":"LOADER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBQYXRofHN0cmluZyAkdXJpCiAqIEBwYXJhbSBib29sICR3aXRoX2hlYWRlciAtIEBkZXByZWNhdGVkIHVzZSAkbG9hZGVyLT53aXRoSGVhZGVyKCkgaW5zdGVhZAogKiBAcGFyYW0gc3RyaW5nICRzZXBhcmF0b3IgLSBAZGVwcmVjYXRlZCB1c2UgJGxvYWRlci0+d2l0aFNlcGFyYXRvcigpIGluc3RlYWQKICogQHBhcmFtIHN0cmluZyAkZW5jbG9zdXJlIC0gQGRlcHJlY2F0ZWQgdXNlICRsb2FkZXItPndpdGhFbmNsb3N1cmUoKSBpbnN0ZWFkCiAqIEBwYXJhbSBzdHJpbmcgJGVzY2FwZSAtIEBkZXByZWNhdGVkIHVzZSAkbG9hZGVyLT53aXRoRXNjYXBlKCkgaW5zdGVhZAogKiBAcGFyYW0gc3RyaW5nICRuZXdfbGluZV9zZXBhcmF0b3IgLSBAZGVwcmVjYXRlZCB1c2UgJGxvYWRlci0+d2l0aE5ld0xpbmVTZXBhcmF0b3IoKSBpbnN0ZWFkCiAqIEBwYXJhbSBzdHJpbmcgJGRhdGV0aW1lX2Zvcm1hdCAtIEBkZXByZWNhdGVkIHVzZSAkbG9hZGVyLT53aXRoRGF0ZVRpbWVGb3JtYXQoKSBpbnN0ZWFkCiAqLw=="},{"repository_path":"src\/adapter\/etl-adapter-csv\/src\/Flow\/ETL\/Adapter\/CSV\/functions.php","start_line_in_file":106,"slug":"csv-detect-separator","name":"csv_detect_separator","namespace":"Flow\\ETL\\Adapter\\CSV","parameters":[{"name":"stream","type":[{"name":"SourceStream","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"lines","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"5"},{"name":"fallback","type":[{"name":"Option","namespace":"Flow\\ETL\\Adapter\\CSV\\Detector","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"Flow\\ETL\\Adapter\\CSV\\Detector\\Option::..."},{"name":"options","type":[{"name":"Options","namespace":"Flow\\ETL\\Adapter\\CSV\\Detector","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Option","namespace":"Flow\\ETL\\Adapter\\CSV\\Detector","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"CSV","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBTb3VyY2VTdHJlYW0gJHN0cmVhbSAtIHZhbGlkIHJlc291cmNlIHRvIENTViBmaWxlCiAqIEBwYXJhbSBpbnQ8MSwgbWF4PiAkbGluZXMgLSBudW1iZXIgb2YgbGluZXMgdG8gcmVhZCBmcm9tIENTViBmaWxlLCBkZWZhdWx0IDUsIG1vcmUgbGluZXMgbWVhbnMgbW9yZSBhY2N1cmF0ZSBkZXRlY3Rpb24gYnV0IHNsb3dlciBkZXRlY3Rpb24KICogQHBhcmFtIG51bGx8T3B0aW9uICRmYWxsYmFjayAtIGZhbGxiYWNrIG9wdGlvbiB0byB1c2Ugd2hlbiBubyBiZXN0IG9wdGlvbiBjYW4gYmUgZGV0ZWN0ZWQsIGRlZmF1bHQgaXMgT3B0aW9uKCcsJywgJyInLCAnXFwnKQogKiBAcGFyYW0gbnVsbHxPcHRpb25zICRvcHRpb25zIC0gb3B0aW9ucyB0byB1c2UgZm9yIGRldGVjdGlvbiwgZGVmYXVsdCBpcyBPcHRpb25zOjphbGwoKQogKi8="},{"repository_path":"src\/adapter\/etl-adapter-doctrine\/src\/Flow\/ETL\/Adapter\/Doctrine\/functions.php","start_line_in_file":41,"slug":"dbal-dataframe-factory","name":"dbal_dataframe_factory","namespace":"Flow\\ETL\\Adapter\\Doctrine","parameters":[{"name":"connection","type":[{"name":"Connection","namespace":"Doctrine\\DBAL","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"query","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"parameters","type":[{"name":"QueryParameter","namespace":"Flow\\ETL\\Adapter\\Doctrine","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"DbalDataFrameFactory","namespace":"Flow\\ETL\\Adapter\\Doctrine","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"DOCTRINE","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheTxzdHJpbmcsIG1peGVkPnxDb25uZWN0aW9uICRjb25uZWN0aW9uCiAqIEBwYXJhbSBzdHJpbmcgJHF1ZXJ5CiAqIEBwYXJhbSBRdWVyeVBhcmFtZXRlciAuLi4kcGFyYW1ldGVycwogKi8="},{"repository_path":"src\/adapter\/etl-adapter-doctrine\/src\/Flow\/ETL\/Adapter\/Doctrine\/functions.php","start_line_in_file":61,"slug":"from-dbal-limit-offset","name":"from_dbal_limit_offset","namespace":"Flow\\ETL\\Adapter\\Doctrine","parameters":[{"name":"connection","type":[{"name":"Connection","namespace":"Doctrine\\DBAL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"table","type":[{"name":"Table","namespace":"Flow\\ETL\\Adapter\\Doctrine","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"order_by","type":[{"name":"OrderBy","namespace":"Flow\\ETL\\Adapter\\Doctrine","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"page_size","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"1000"},{"name":"maximum","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"DbalLimitOffsetExtractor","namespace":"Flow\\ETL\\Adapter\\Doctrine","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"DOCTRINE","type":"EXTRACTOR"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBDb25uZWN0aW9uICRjb25uZWN0aW9uCiAqIEBwYXJhbSBzdHJpbmd8VGFibGUgJHRhYmxlCiAqIEBwYXJhbSBhcnJheTxPcmRlckJ5PnxPcmRlckJ5ICRvcmRlcl9ieQogKiBAcGFyYW0gaW50ICRwYWdlX3NpemUgLSBiZWNvbWVzIHRoZSBleHRyYWN0b3IncyBiYXRjaCBzaXplOiByb3dzIHBlciBwYWdlCiAqIEBwYXJhbSBudWxsfGludCAkbWF4aW11bQogKgogKiBAdGhyb3dzIEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbgogKi8="},{"repository_path":"src\/adapter\/etl-adapter-doctrine\/src\/Flow\/ETL\/Adapter\/Doctrine\/functions.php","start_line_in_file":88,"slug":"from-dbal-limit-offset-qb","name":"from_dbal_limit_offset_qb","namespace":"Flow\\ETL\\Adapter\\Doctrine","parameters":[{"name":"connection","type":[{"name":"Connection","namespace":"Doctrine\\DBAL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"queryBuilder","type":[{"name":"QueryBuilder","namespace":"Doctrine\\DBAL\\Query","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"page_size","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"1000"},{"name":"maximum","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"offset","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"0"}],"return_type":[{"name":"DbalLimitOffsetExtractor","namespace":"Flow\\ETL\\Adapter\\Doctrine","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"DOCTRINE","type":"EXTRACTOR"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBDb25uZWN0aW9uICRjb25uZWN0aW9uCiAqIEBwYXJhbSBpbnQgJHBhZ2Vfc2l6ZSAtIGJlY29tZXMgdGhlIGV4dHJhY3RvcidzIGJhdGNoIHNpemU6IHJvd3MgcGVyIHBhZ2UKICogQHBhcmFtIG51bGx8aW50ICRtYXhpbXVtIC0gbWF4aW11bSBjYW4gYWxzbyBiZSB0YWtlbiBmcm9tIGEgcXVlcnkgYnVpbGRlciwgJG1heGltdW0gaG93ZXZlciBpcyB1c2VkIHJlZ2FyZGxlc3Mgb2YgdGhlIHF1ZXJ5IGJ1aWxkZXIgaWYgaXQncyBzZXQKICogQHBhcmFtIGludCAkb2Zmc2V0IC0gb2Zmc2V0IGNhbiBhbHNvIGJlIHRha2VuIGZyb20gYSBxdWVyeSBidWlsZGVyLCAkb2Zmc2V0IGhvd2V2ZXIgaXMgdXNlZCByZWdhcmRsZXNzIG9mIHRoZSBxdWVyeSBidWlsZGVyIGlmIGl0J3Mgc2V0IHRvIG5vbiAwIHZhbHVlCiAqLw=="},{"repository_path":"src\/adapter\/etl-adapter-doctrine\/src\/Flow\/ETL\/Adapter\/Doctrine\/functions.php","start_line_in_file":107,"slug":"from-dbal-key-set-qb","name":"from_dbal_key_set_qb","namespace":"Flow\\ETL\\Adapter\\Doctrine","parameters":[{"name":"connection","type":[{"name":"Connection","namespace":"Doctrine\\DBAL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"queryBuilder","type":[{"name":"QueryBuilder","namespace":"Doctrine\\DBAL\\Query","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"key_set","type":[{"name":"KeySet","namespace":"Flow\\ETL\\Adapter\\Doctrine\\Pagination","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"DbalKeySetExtractor","namespace":"Flow\\ETL\\Adapter\\Doctrine","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"DOCTRINE","type":"EXTRACTOR"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-doctrine\/src\/Flow\/ETL\/Adapter\/Doctrine\/functions.php","start_line_in_file":117,"slug":"from-dbal-queries","name":"from_dbal_queries","namespace":"Flow\\ETL\\Adapter\\Doctrine","parameters":[{"name":"connection","type":[{"name":"Connection","namespace":"Doctrine\\DBAL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"query","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"parameters_set","type":[{"name":"ParametersSet","namespace":"Flow\\ETL\\Adapter\\Doctrine","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"types","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"}],"return_type":[{"name":"DbalQueryExtractor","namespace":"Flow\\ETL\\Adapter\\Doctrine","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"DOCTRINE","type":"EXTRACTOR"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBudWxsfFBhcmFtZXRlcnNTZXQgJHBhcmFtZXRlcnNfc2V0IC0gZWFjaCBvbmUgcGFyYW1ldGVycyBhcnJheSB3aWxsIGJlIGV2YWx1YXRlZCBhcyBuZXcgcXVlcnkKICogQHBhcmFtIGFycmF5PGludDwwLCBtYXg+fHN0cmluZywgRGJhbEFycmF5VHlwZXxEYmFsUGFyYW1ldGVyVHlwZXxEYmFsVHlwZXxzdHJpbmc+ICR0eXBlcwogKi8="},{"repository_path":"src\/adapter\/etl-adapter-doctrine\/src\/Flow\/ETL\/Adapter\/Doctrine\/functions.php","start_line_in_file":143,"slug":"dbal-from-queries","name":"dbal_from_queries","namespace":"Flow\\ETL\\Adapter\\Doctrine","parameters":[{"name":"connection","type":[{"name":"Connection","namespace":"Doctrine\\DBAL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"query","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"parameters_set","type":[{"name":"ParametersSet","namespace":"Flow\\ETL\\Adapter\\Doctrine","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"types","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"}],"return_type":[{"name":"DbalQueryExtractor","namespace":"Flow\\ETL\\Adapter\\Doctrine","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"DOCTRINE","type":"EXTRACTOR"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBkZXByZWNhdGVkIHVzZSBmcm9tX2RiYWxfcXVlcmllcygpIGluc3RlYWQKICoKICogQHBhcmFtIG51bGx8UGFyYW1ldGVyc1NldCAkcGFyYW1ldGVyc19zZXQgLSBlYWNoIG9uZSBwYXJhbWV0ZXJzIGFycmF5IHdpbGwgYmUgZXZhbHVhdGVkIGFzIG5ldyBxdWVyeQogKiBAcGFyYW0gYXJyYXk8aW50PDAsIG1heD58c3RyaW5nLCBEYmFsQXJyYXlUeXBlfERiYWxQYXJhbWV0ZXJUeXBlfERiYWxUeXBlfHN0cmluZz4gJHR5cGVzCiAqLw=="},{"repository_path":"src\/adapter\/etl-adapter-doctrine\/src\/Flow\/ETL\/Adapter\/Doctrine\/functions.php","start_line_in_file":157,"slug":"from-dbal-query","name":"from_dbal_query","namespace":"Flow\\ETL\\Adapter\\Doctrine","parameters":[{"name":"connection","type":[{"name":"Connection","namespace":"Doctrine\\DBAL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"query","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"parameters","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"types","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"}],"return_type":[{"name":"DbalQueryExtractor","namespace":"Flow\\ETL\\Adapter\\Doctrine","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"DOCTRINE","type":"EXTRACTOR"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheTxzdHJpbmcsIG1peGVkPnxsaXN0PG1peGVkPiAkcGFyYW1ldGVycyAtIEBkZXByZWNhdGVkIHVzZSBEYmFsUXVlcnlFeHRyYWN0b3I6OndpdGhQYXJhbWV0ZXJzKCkgaW5zdGVhZAogKiBAcGFyYW0gYXJyYXk8aW50PDAsIG1heD58c3RyaW5nLCBEYmFsQXJyYXlUeXBlfERiYWxQYXJhbWV0ZXJUeXBlfERiYWxUeXBlfHN0cmluZz4gJHR5cGVzIC0gQGRlcHJlY2F0ZWQgdXNlIERiYWxRdWVyeUV4dHJhY3Rvcjo6d2l0aFR5cGVzKCkgaW5zdGVhZAogKi8="},{"repository_path":"src\/adapter\/etl-adapter-doctrine\/src\/Flow\/ETL\/Adapter\/Doctrine\/functions.php","start_line_in_file":173,"slug":"dbal-from-query","name":"dbal_from_query","namespace":"Flow\\ETL\\Adapter\\Doctrine","parameters":[{"name":"connection","type":[{"name":"Connection","namespace":"Doctrine\\DBAL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"query","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"parameters","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"types","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"}],"return_type":[{"name":"DbalQueryExtractor","namespace":"Flow\\ETL\\Adapter\\Doctrine","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"DOCTRINE","type":"EXTRACTOR"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBkZXByZWNhdGVkIHVzZSBmcm9tX2RiYWxfcXVlcnkoKSBpbnN0ZWFkCiAqCiAqIEBwYXJhbSBhcnJheTxzdHJpbmcsIG1peGVkPnxsaXN0PG1peGVkPiAkcGFyYW1ldGVycyAtIEBkZXByZWNhdGVkIHVzZSBEYmFsUXVlcnlFeHRyYWN0b3I6OndpdGhQYXJhbWV0ZXJzKCkgaW5zdGVhZAogKiBAcGFyYW0gYXJyYXk8aW50PDAsIG1heD58c3RyaW5nLCBEYmFsQXJyYXlUeXBlfERiYWxQYXJhbWV0ZXJUeXBlfERiYWxUeXBlfHN0cmluZz4gJHR5cGVzIC0gQGRlcHJlY2F0ZWQgdXNlIERiYWxRdWVyeUV4dHJhY3Rvcjo6d2l0aFR5cGVzKCkgaW5zdGVhZAogKi8="},{"repository_path":"src\/adapter\/etl-adapter-doctrine\/src\/Flow\/ETL\/Adapter\/Doctrine\/functions.php","start_line_in_file":199,"slug":"to-dbal-table-insert","name":"to_dbal_table_insert","namespace":"Flow\\ETL\\Adapter\\Doctrine","parameters":[{"name":"connection","type":[{"name":"Connection","namespace":"Doctrine\\DBAL","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"table","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"options","type":[{"name":"InsertOptions","namespace":"Flow\\Doctrine\\Bulk","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"DbalLoader","namespace":"Flow\\ETL\\Adapter\\Doctrine","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"DOCTRINE","type":"LOADER"}},{"name":"DocumentationExample","namespace":"Flow\\Documentation\\Attribute","arguments":{"topic":"writing","example":"dbal","option":"upsert"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEluc2VydCBuZXcgcm93cyBpbnRvIGEgZGF0YWJhc2UgdGFibGUuCiAqIEluc2VydCBjYW4gYWxzbyBiZSB1c2VkIGFzIGFuIHVwc2VydCB3aXRoIHRoZSBoZWxwIG9mIEluc2VydE9wdGlvbnMuCiAqIEluc2VydE9wdGlvbnMgYXJlIHBsYXRmb3JtIHNwZWNpZmljLCBzbyBwbGVhc2UgY2hvb3NlIHRoZSByaWdodCBvbmUgZm9yIHlvdXIgZGF0YWJhc2UuCiAqCiAqICAtIE15U1FMSW5zZXJ0T3B0aW9ucwogKiAgLSBQb3N0Z3JlU1FMSW5zZXJ0T3B0aW9ucwogKiAgLSBTcWxpdGVJbnNlcnRPcHRpb25zCiAqCiAqIEluIG9yZGVyIHRvIGNvbnRyb2wgdGhlIHNpemUgb2YgdGhlIHNpbmdsZSBpbnNlcnQsIHVzZSBEYXRhRnJhbWU6OmNodW5rU2l6ZSgpIG1ldGhvZCBqdXN0IGJlZm9yZSBjYWxsaW5nIERhdGFGcmFtZTo6bG9hZCgpLgogKgogKiBAcGFyYW0gYXJyYXk8c3RyaW5nLCBtaXhlZD58Q29ubmVjdGlvbiAkY29ubmVjdGlvbgogKgogKiBAdGhyb3dzIEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbgogKi8="},{"repository_path":"src\/adapter\/etl-adapter-doctrine\/src\/Flow\/ETL\/Adapter\/Doctrine\/functions.php","start_line_in_file":216,"slug":"to-dbal-table-update","name":"to_dbal_table_update","namespace":"Flow\\ETL\\Adapter\\Doctrine","parameters":[{"name":"connection","type":[{"name":"Connection","namespace":"Doctrine\\DBAL","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"table","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"options","type":[{"name":"UpdateOptions","namespace":"Flow\\Doctrine\\Bulk","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"DbalLoader","namespace":"Flow\\ETL\\Adapter\\Doctrine","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"DOCTRINE","type":"LOADER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqICBVcGRhdGUgZXhpc3Rpbmcgcm93cyBpbiBkYXRhYmFzZS4KICoKICogIEluIG9yZGVyIHRvIGNvbnRyb2wgdGhlIHNpemUgb2YgdGhlIHNpbmdsZSByZXF1ZXN0LCB1c2UgRGF0YUZyYW1lOjpjaHVua1NpemUoKSBtZXRob2QganVzdCBiZWZvcmUgY2FsbGluZyBEYXRhRnJhbWU6OmxvYWQoKS4KICoKICogQHBhcmFtIGFycmF5PHN0cmluZywgbWl4ZWQ+fENvbm5lY3Rpb24gJGNvbm5lY3Rpb24KICoKICogQHRocm93cyBJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24KICov"},{"repository_path":"src\/adapter\/etl-adapter-doctrine\/src\/Flow\/ETL\/Adapter\/Doctrine\/functions.php","start_line_in_file":235,"slug":"to-dbal-table-delete","name":"to_dbal_table_delete","namespace":"Flow\\ETL\\Adapter\\Doctrine","parameters":[{"name":"connection","type":[{"name":"Connection","namespace":"Doctrine\\DBAL","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"table","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"DbalLoader","namespace":"Flow\\ETL\\Adapter\\Doctrine","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"DOCTRINE","type":"LOADER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIERlbGV0ZSByb3dzIGZyb20gZGF0YWJhc2UgdGFibGUgYmFzZWQgb24gdGhlIHByb3ZpZGVkIGRhdGEuCiAqCiAqIEluIG9yZGVyIHRvIGNvbnRyb2wgdGhlIHNpemUgb2YgdGhlIHNpbmdsZSByZXF1ZXN0LCB1c2UgRGF0YUZyYW1lOjpjaHVua1NpemUoKSBtZXRob2QganVzdCBiZWZvcmUgY2FsbGluZyBEYXRhRnJhbWU6OmxvYWQoKS4KICoKICogQHBhcmFtIGFycmF5PHN0cmluZywgbWl4ZWQ+fENvbm5lY3Rpb24gJGNvbm5lY3Rpb24KICoKICogQHRocm93cyBJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24KICov"},{"repository_path":"src\/adapter\/etl-adapter-doctrine\/src\/Flow\/ETL\/Adapter\/Doctrine\/functions.php","start_line_in_file":250,"slug":"to-dbal-schema-table","name":"to_dbal_schema_table","namespace":"Flow\\ETL\\Adapter\\Doctrine","parameters":[{"name":"schema","type":[{"name":"Schema","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"table_name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"table_options","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"types_map","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"}],"return_type":[{"name":"Table","namespace":"Doctrine\\DBAL\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"DOCTRINE","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENvbnZlcnRzIGEgRmxvd1xFVExcU2NoZW1hIHRvIGEgRG9jdHJpbmVcREJBTFxTY2hlbWFcVGFibGUuCiAqCiAqIEBwYXJhbSBTY2hlbWEgJHNjaGVtYQogKiBAcGFyYW0gYXJyYXk8c3RyaW5nLCBtaXhlZD4gJHRhYmxlX29wdGlvbnMKICogQHBhcmFtIGFycmF5PGNsYXNzLXN0cmluZzxcRmxvd1xUeXBlc1xUeXBlPG1peGVkPj4sIGNsYXNzLXN0cmluZzxcRG9jdHJpbmVcREJBTFxUeXBlc1xUeXBlPj4gJHR5cGVzX21hcAogKi8="},{"repository_path":"src\/adapter\/etl-adapter-doctrine\/src\/Flow\/ETL\/Adapter\/Doctrine\/functions.php","start_line_in_file":267,"slug":"table-schema-to-flow-schema","name":"table_schema_to_flow_schema","namespace":"Flow\\ETL\\Adapter\\Doctrine","parameters":[{"name":"table","type":[{"name":"Table","namespace":"Doctrine\\DBAL\\Schema","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"types_map","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"}],"return_type":[{"name":"Schema","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"DOCTRINE","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENvbnZlcnRzIGEgRG9jdHJpbmVcREJBTFxTY2hlbWFcVGFibGUgdG8gYSBGbG93XEVUTFxTY2hlbWEuCiAqCiAqIEBwYXJhbSBhcnJheTxjbGFzcy1zdHJpbmc8XEZsb3dcVHlwZXNcVHlwZTxtaXhlZD4+LCBjbGFzcy1zdHJpbmc8XERvY3RyaW5lXERCQUxcVHlwZXNcVHlwZT4+ICR0eXBlc19tYXAKICoKICogQHJldHVybiBTY2hlbWEKICov"},{"repository_path":"src\/adapter\/etl-adapter-doctrine\/src\/Flow\/ETL\/Adapter\/Doctrine\/functions.php","start_line_in_file":278,"slug":"postgresql-insert-options","name":"postgresql_insert_options","namespace":"Flow\\ETL\\Adapter\\Doctrine","parameters":[{"name":"skip_conflicts","type":[{"name":"bool","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"constraint","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"conflict_columns","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"update_columns","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"}],"return_type":[{"name":"PostgreSQLInsertOptions","namespace":"Flow\\Doctrine\\Bulk\\Dialect","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"DOCTRINE","type":"HELPER"}},{"name":"DocumentationExample","namespace":"Flow\\Documentation\\Attribute","arguments":{"topic":"writing","example":"dbal","option":"upsert"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheTxzdHJpbmc+ICRjb25mbGljdF9jb2x1bW5zCiAqIEBwYXJhbSBhcnJheTxzdHJpbmc+ICR1cGRhdGVfY29sdW1ucwogKi8="},{"repository_path":"src\/adapter\/etl-adapter-doctrine\/src\/Flow\/ETL\/Adapter\/Doctrine\/functions.php","start_line_in_file":291,"slug":"mysql-insert-options","name":"mysql_insert_options","namespace":"Flow\\ETL\\Adapter\\Doctrine","parameters":[{"name":"skip_conflicts","type":[{"name":"bool","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"upsert","type":[{"name":"bool","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"update_columns","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"}],"return_type":[{"name":"MySQLInsertOptions","namespace":"Flow\\Doctrine\\Bulk\\Dialect","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"DOCTRINE","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheTxzdHJpbmc+ICR1cGRhdGVfY29sdW1ucwogKi8="},{"repository_path":"src\/adapter\/etl-adapter-doctrine\/src\/Flow\/ETL\/Adapter\/Doctrine\/functions.php","start_line_in_file":304,"slug":"sqlite-insert-options","name":"sqlite_insert_options","namespace":"Flow\\ETL\\Adapter\\Doctrine","parameters":[{"name":"skip_conflicts","type":[{"name":"bool","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"conflict_columns","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"update_columns","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"}],"return_type":[{"name":"SqliteInsertOptions","namespace":"Flow\\Doctrine\\Bulk\\Dialect","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"DOCTRINE","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheTxzdHJpbmc+ICRjb25mbGljdF9jb2x1bW5zCiAqIEBwYXJhbSBhcnJheTxzdHJpbmc+ICR1cGRhdGVfY29sdW1ucwogKi8="},{"repository_path":"src\/adapter\/etl-adapter-doctrine\/src\/Flow\/ETL\/Adapter\/Doctrine\/functions.php","start_line_in_file":317,"slug":"postgresql-update-options","name":"postgresql_update_options","namespace":"Flow\\ETL\\Adapter\\Doctrine","parameters":[{"name":"primary_key_columns","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"update_columns","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"}],"return_type":[{"name":"PostgreSQLUpdateOptions","namespace":"Flow\\Doctrine\\Bulk\\Dialect","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"DOCTRINE","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheTxzdHJpbmc+ICRwcmltYXJ5X2tleV9jb2x1bW5zCiAqIEBwYXJhbSBhcnJheTxzdHJpbmc+ICR1cGRhdGVfY29sdW1ucwogKi8="},{"repository_path":"src\/adapter\/etl-adapter-doctrine\/src\/Flow\/ETL\/Adapter\/Doctrine\/functions.php","start_line_in_file":338,"slug":"to-dbal-transaction","name":"to_dbal_transaction","namespace":"Flow\\ETL\\Adapter\\Doctrine","parameters":[{"name":"connection","type":[{"name":"Connection","namespace":"Doctrine\\DBAL","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"sinks","type":[{"name":"Loader","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false},{"name":"Sink","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"Transactional","namespace":"Flow\\ETL\\Sink","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"DOCTRINE","type":"LOADER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIFdyaXRlIGV2ZXJ5IHNpbmsgd2l0aGluIGRhdGFiYXNlIHRyYW5zYWN0aW9ucy4KICogRWFjaCBiYXRjaCBvZiByb3dzIGlzIHdyaXR0ZW4gaW4gaXRzIG93biB0cmFuc2FjdGlvbjsgcm93cyBhIHNpbmsncyBUcmFuc2Zvcm1hdGlvbiBkZWxpdmVycyB3aGVuCiAqIHRoZSBydW4gZW5kcyAoYmxvY2tpbmcgb3BlcmF0aW9ucyBkcmFpbiB0aGVyZSkgYXJlIGNvbW1pdHRlZCBpbiBvbmUgZmluYWwgdHJhbnNhY3Rpb24uCiAqIElmIGFueSBzaW5rIGZhaWxzLCB0aGUgb3BlbiB0cmFuc2FjdGlvbiBpcyByb2xsZWQgYmFjay4KICogQSBwbGFpbiBMb2FkZXIgY2hpbGQgaXMgYSBiYXJlIHNpbmsgcm9vdDsgYSB0b190cmFuc2Zvcm1hdGlvbiguLi4pIGNoaWxkIGRlbGl2ZXJzIGluc2lkZSB0aGUgc2FtZQogKiB0cmFuc2FjdGlvbi4gRXZlcnkgY2hpbGQncyBsb2FkZXIgbXVzdCB1c2UgdGhlIHNhbWUgY29ubmVjdGlvbiBhcyB0aGUgdHJhbnNhY3Rpb246IHBhc3Mgb25lIGxpdmUKICogQ29ubmVjdGlvbiB0byBib3RoIC0gYSBsb2FkZXIgYnVpbHQgZnJvbSBhcnJheSBwYXJhbXMgb3BlbnMgaXRzIG93biBjb25uZWN0aW9uIGFuZCBlc2NhcGVzIHRoZQogKiB0cmFuc2FjdGlvbi4KICoKICogQHBhcmFtIGFycmF5PHN0cmluZywgbWl4ZWQ+fENvbm5lY3Rpb24gJGNvbm5lY3Rpb24KICogQHBhcmFtIExvYWRlcnxTaW5rIC4uLiRzaW5rcyAtIHNpbmtzIHdyaXR0ZW4gd2l0aGluIHRoZSB0cmFuc2FjdGlvbgogKgogKiBAdGhyb3dzIEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbgogKi8="},{"repository_path":"src\/adapter\/etl-adapter-doctrine\/src\/Flow\/ETL\/Adapter\/Doctrine\/functions.php","start_line_in_file":347,"slug":"pagination-key-asc","name":"pagination_key_asc","namespace":"Flow\\ETL\\Adapter\\Doctrine","parameters":[{"name":"column","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"type","type":[{"name":"ParameterType","namespace":"Doctrine\\DBAL","is_nullable":false,"is_variadic":false},{"name":"Type","namespace":"Doctrine\\DBAL\\Types","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Doctrine\\DBAL\\ParameterType::..."}],"return_type":[{"name":"Key","namespace":"Flow\\ETL\\Adapter\\Doctrine\\Pagination","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"DOCTRINE","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-doctrine\/src\/Flow\/ETL\/Adapter\/Doctrine\/functions.php","start_line_in_file":353,"slug":"pagination-key-desc","name":"pagination_key_desc","namespace":"Flow\\ETL\\Adapter\\Doctrine","parameters":[{"name":"column","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"type","type":[{"name":"ParameterType","namespace":"Doctrine\\DBAL","is_nullable":false,"is_variadic":false},{"name":"Type","namespace":"Doctrine\\DBAL\\Types","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Doctrine\\DBAL\\ParameterType::..."}],"return_type":[{"name":"Key","namespace":"Flow\\ETL\\Adapter\\Doctrine\\Pagination","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"DOCTRINE","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-doctrine\/src\/Flow\/ETL\/Adapter\/Doctrine\/functions.php","start_line_in_file":359,"slug":"pagination-key-set","name":"pagination_key_set","namespace":"Flow\\ETL\\Adapter\\Doctrine","parameters":[{"name":"keys","type":[{"name":"Key","namespace":"Flow\\ETL\\Adapter\\Doctrine\\Pagination","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"KeySet","namespace":"Flow\\ETL\\Adapter\\Doctrine\\Pagination","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"DOCTRINE","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-excel\/src\/Flow\/ETL\/Adapter\/Excel\/DSL\/functions.php","start_line_in_file":22,"slug":"from-excel","name":"from_excel","namespace":"Flow\\ETL\\Adapter\\Excel\\DSL","parameters":[{"name":"path","type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"filesystem","type":[{"name":"Filesystem","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Filesystem\\Local\\NativeLocalFilesystem::..."}],"return_type":[{"name":"ExcelExtractor","namespace":"Flow\\ETL\\Adapter\\Excel","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"EXCEL","type":"EXTRACTOR"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-excel\/src\/Flow\/ETL\/Adapter\/Excel\/DSL\/functions.php","start_line_in_file":28,"slug":"to-excel","name":"to_excel","namespace":"Flow\\ETL\\Adapter\\Excel\\DSL","parameters":[{"name":"path","type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"filesystem","type":[{"name":"Filesystem","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Filesystem\\Local\\NativeLocalFilesystem::..."}],"return_type":[{"name":"ExcelLoader","namespace":"Flow\\ETL\\Adapter\\Excel","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"EXCEL","type":"LOADER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-excel\/src\/Flow\/ETL\/Adapter\/Excel\/DSL\/functions.php","start_line_in_file":34,"slug":"is-valid-excel-sheet-name","name":"is_valid_excel_sheet_name","namespace":"Flow\\ETL\\Adapter\\Excel\\DSL","parameters":[{"name":"sheet_name","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"IsValidExcelSheetName","namespace":"Flow\\ETL\\Adapter\\Excel\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"EXCEL","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-google-sheet\/src\/Flow\/ETL\/Adapter\/GoogleSheet\/functions.php","start_line_in_file":22,"slug":"from-google-sheet","name":"from_google_sheet","namespace":"Flow\\ETL\\Adapter\\GoogleSheet","parameters":[{"name":"auth_config","type":[{"name":"Sheets","namespace":"Google\\Service","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"spreadsheet_id","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"sheet_name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"with_header","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"rows_per_page","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"1000"},{"name":"options","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"}],"return_type":[{"name":"GoogleSheetExtractor","namespace":"Flow\\ETL\\Adapter\\GoogleSheet","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"GOOGLE_SHEET","type":"EXTRACTOR"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheXt0eXBlOiBzdHJpbmcsIHByb2plY3RfaWQ6IHN0cmluZywgcHJpdmF0ZV9rZXlfaWQ6IHN0cmluZywgcHJpdmF0ZV9rZXk6IHN0cmluZywgY2xpZW50X2VtYWlsOiBzdHJpbmcsIGNsaWVudF9pZDogc3RyaW5nLCBhdXRoX3VyaTogc3RyaW5nLCB0b2tlbl91cmk6IHN0cmluZywgYXV0aF9wcm92aWRlcl94NTA5X2NlcnRfdXJsOiBzdHJpbmcsIGNsaWVudF94NTA5X2NlcnRfdXJsOiBzdHJpbmd9fFNoZWV0cyAkYXV0aF9jb25maWcKICogQHBhcmFtIHN0cmluZyAkc3ByZWFkc2hlZXRfaWQKICogQHBhcmFtIHN0cmluZyAkc2hlZXRfbmFtZQogKiBAcGFyYW0gYm9vbCAkd2l0aF9oZWFkZXIgLSBAZGVwcmVjYXRlZCB1c2Ugd2l0aEhlYWRlciBtZXRob2QgaW5zdGVhZAogKiBAcGFyYW0gaW50ICRyb3dzX3Blcl9wYWdlIC0gaG93IG1hbnkgcm93cyBwZXIgcGFnZSB0byBmZXRjaCBmcm9tIEdvb2dsZSBTaGVldHMgQVBJIC0gQGRlcHJlY2F0ZWQgdXNlIHdpdGhSb3dzUGVyUGFnZSBtZXRob2QgaW5zdGVhZAogKiBAcGFyYW0gYXJyYXl7ZGF0ZVRpbWVSZW5kZXJPcHRpb24\/OiBzdHJpbmcsIG1ham9yRGltZW5zaW9uPzogc3RyaW5nLCB2YWx1ZVJlbmRlck9wdGlvbj86IHN0cmluZ30gJG9wdGlvbnMgLSBAZGVwcmVjYXRlZCB1c2Ugd2l0aE9wdGlvbnMgbWV0aG9kIGluc3RlYWQKICov"},{"repository_path":"src\/adapter\/etl-adapter-google-sheet\/src\/Flow\/ETL\/Adapter\/GoogleSheet\/functions.php","start_line_in_file":56,"slug":"from-google-sheet-columns","name":"from_google_sheet_columns","namespace":"Flow\\ETL\\Adapter\\GoogleSheet","parameters":[{"name":"auth_config","type":[{"name":"Sheets","namespace":"Google\\Service","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"spreadsheet_id","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"sheet_name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"start_range_column","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"end_range_column","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"with_header","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"rows_per_page","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"1000"},{"name":"options","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"}],"return_type":[{"name":"GoogleSheetExtractor","namespace":"Flow\\ETL\\Adapter\\GoogleSheet","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"GOOGLE_SHEET","type":"EXTRACTOR"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheXt0eXBlOiBzdHJpbmcsIHByb2plY3RfaWQ6IHN0cmluZywgcHJpdmF0ZV9rZXlfaWQ6IHN0cmluZywgcHJpdmF0ZV9rZXk6IHN0cmluZywgY2xpZW50X2VtYWlsOiBzdHJpbmcsIGNsaWVudF9pZDogc3RyaW5nLCBhdXRoX3VyaTogc3RyaW5nLCB0b2tlbl91cmk6IHN0cmluZywgYXV0aF9wcm92aWRlcl94NTA5X2NlcnRfdXJsOiBzdHJpbmcsIGNsaWVudF94NTA5X2NlcnRfdXJsOiBzdHJpbmd9fFNoZWV0cyAkYXV0aF9jb25maWcKICogQHBhcmFtIHN0cmluZyAkc3ByZWFkc2hlZXRfaWQKICogQHBhcmFtIHN0cmluZyAkc2hlZXRfbmFtZQogKiBAcGFyYW0gc3RyaW5nICRzdGFydF9yYW5nZV9jb2x1bW4KICogQHBhcmFtIHN0cmluZyAkZW5kX3JhbmdlX2NvbHVtbgogKiBAcGFyYW0gYm9vbCAkd2l0aF9oZWFkZXIgLSBAZGVwcmVjYXRlZCB1c2Ugd2l0aEhlYWRlciBtZXRob2QgaW5zdGVhZAogKiBAcGFyYW0gaW50ICRyb3dzX3Blcl9wYWdlIC0gaG93IG1hbnkgcm93cyBwZXIgcGFnZSB0byBmZXRjaCBmcm9tIEdvb2dsZSBTaGVldHMgQVBJLCBkZWZhdWx0IDEwMDAgLSBAZGVwcmVjYXRlZCB1c2Ugd2l0aFJvd3NQZXJQYWdlIG1ldGhvZCBpbnN0ZWFkCiAqIEBwYXJhbSBhcnJheXtkYXRlVGltZVJlbmRlck9wdGlvbj86IHN0cmluZywgbWFqb3JEaW1lbnNpb24\/OiBzdHJpbmcsIHZhbHVlUmVuZGVyT3B0aW9uPzogc3RyaW5nfSAkb3B0aW9ucyAtIEBkZXByZWNhdGVkIHVzZSB3aXRoT3B0aW9ucyBtZXRob2QgaW5zdGVhZAogKi8="},{"repository_path":"src\/adapter\/etl-adapter-http\/src\/Flow\/ETL\/Adapter\/Http\/DSL\/functions.php","start_line_in_file":35,"slug":"from-dynamic-http-requests","name":"from_dynamic_http_requests","namespace":"Flow\\ETL\\Adapter\\Http","parameters":[{"name":"client","type":[{"name":"ClientInterface","namespace":"Psr\\Http\\Client","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"requestFactory","type":[{"name":"NextRequestFactory","namespace":"Flow\\ETL\\Adapter\\Http\\DynamicExtractor","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"schema","type":[{"name":"Schema","namespace":"Flow\\ETL","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"PsrHttpClientDynamicExtractor","namespace":"Flow\\ETL\\Adapter\\Http","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"HTTP","type":"EXTRACTOR"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-http\/src\/Flow\/ETL\/Adapter\/Http\/DSL\/functions.php","start_line_in_file":53,"slug":"from-static-http-requests","name":"from_static_http_requests","namespace":"Flow\\ETL\\Adapter\\Http","parameters":[{"name":"client","type":[{"name":"ClientInterface","namespace":"Psr\\Http\\Client","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"requests","type":[{"name":"iterable","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"schema","type":[{"name":"Schema","namespace":"Flow\\ETL","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"PsrHttpClientStaticExtractor","namespace":"Flow\\ETL\\Adapter\\Http","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"HTTP","type":"EXTRACTOR"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBpdGVyYWJsZTxSZXF1ZXN0SW50ZXJmYWNlPiAkcmVxdWVzdHMKICov"},{"repository_path":"src\/adapter\/etl-adapter-http\/src\/Flow\/ETL\/Adapter\/Http\/DSL\/functions.php","start_line_in_file":68,"slug":"from-http-paginated","name":"from_http_paginated","namespace":"Flow\\ETL\\Adapter\\Http","parameters":[{"name":"client","type":[{"name":"ClientInterface","namespace":"Psr\\Http\\Client","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"request","type":[{"name":"RequestInterface","namespace":"Psr\\Http\\Message","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"paginator","type":[{"name":"Paginator","namespace":"Flow\\ETL\\Adapter\\Http\\Pagination","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"schema","type":[{"name":"Schema","namespace":"Flow\\ETL","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"PsrHttpClientPaginatedExtractor","namespace":"Flow\\ETL\\Adapter\\Http","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"HTTP","type":"EXTRACTOR"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-http\/src\/Flow\/ETL\/Adapter\/Http\/DSL\/functions.php","start_line_in_file":84,"slug":"http-pagination-page-number","name":"http_pagination_page_number","namespace":"Flow\\ETL\\Adapter\\Http","parameters":[{"name":"inject","type":[{"name":"RequestOption","namespace":"Flow\\ETL\\Adapter\\Http\\Pagination","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"start_page","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"1"},{"name":"page_size","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"size_option","type":[{"name":"RequestOption","namespace":"Flow\\ETL\\Adapter\\Http\\Pagination","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"inject_on_first_request","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"records_path","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"stop_on_client_error","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"stop_when","type":[{"name":"StopWhen","namespace":"Flow\\ETL\\Adapter\\Http\\Pagination","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Paginator","namespace":"Flow\\ETL\\Adapter\\Http\\Pagination","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"HTTP","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-http\/src\/Flow\/ETL\/Adapter\/Http\/DSL\/functions.php","start_line_in_file":104,"slug":"http-pagination-offset","name":"http_pagination_offset","namespace":"Flow\\ETL\\Adapter\\Http","parameters":[{"name":"offset_option","type":[{"name":"RequestOption","namespace":"Flow\\ETL\\Adapter\\Http\\Pagination","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"limit_option","type":[{"name":"RequestOption","namespace":"Flow\\ETL\\Adapter\\Http\\Pagination","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"limit","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"start_offset","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"0"},{"name":"total_path","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"inject_on_first_request","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"stop_on_client_error","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"stop_when","type":[{"name":"StopWhen","namespace":"Flow\\ETL\\Adapter\\Http\\Pagination","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Paginator","namespace":"Flow\\ETL\\Adapter\\Http\\Pagination","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"HTTP","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-http\/src\/Flow\/ETL\/Adapter\/Http\/DSL\/functions.php","start_line_in_file":124,"slug":"http-pagination-cursor","name":"http_pagination_cursor","namespace":"Flow\\ETL\\Adapter\\Http","parameters":[{"name":"cursor_path","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"inject","type":[{"name":"RequestOption","namespace":"Flow\\ETL\\Adapter\\Http\\Pagination","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"stop_on_client_error","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"stop_when","type":[{"name":"StopWhen","namespace":"Flow\\ETL\\Adapter\\Http\\Pagination","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Paginator","namespace":"Flow\\ETL\\Adapter\\Http\\Pagination","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"HTTP","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-http\/src\/Flow\/ETL\/Adapter\/Http\/DSL\/functions.php","start_line_in_file":140,"slug":"http-pagination-next-url","name":"http_pagination_next_url","namespace":"Flow\\ETL\\Adapter\\Http","parameters":[{"name":"path","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"stop_on_client_error","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"stop_when","type":[{"name":"StopWhen","namespace":"Flow\\ETL\\Adapter\\Http\\Pagination","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Paginator","namespace":"Flow\\ETL\\Adapter\\Http\\Pagination","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"HTTP","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-http\/src\/Flow\/ETL\/Adapter\/Http\/DSL\/functions.php","start_line_in_file":155,"slug":"http-pagination-link-header","name":"http_pagination_link_header","namespace":"Flow\\ETL\\Adapter\\Http","parameters":[{"name":"rel","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'next'"},{"name":"stop_on_client_error","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"stop_when","type":[{"name":"StopWhen","namespace":"Flow\\ETL\\Adapter\\Http\\Pagination","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Paginator","namespace":"Flow\\ETL\\Adapter\\Http\\Pagination","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"HTTP","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-http\/src\/Flow\/ETL\/Adapter\/Http\/DSL\/functions.php","start_line_in_file":164,"slug":"http-pagination-last-record-cursor","name":"http_pagination_last_record_cursor","namespace":"Flow\\ETL\\Adapter\\Http","parameters":[{"name":"record_path","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"inject","type":[{"name":"RequestOption","namespace":"Flow\\ETL\\Adapter\\Http\\Pagination","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"stop_on_client_error","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"stop_when","type":[{"name":"StopWhen","namespace":"Flow\\ETL\\Adapter\\Http\\Pagination","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Paginator","namespace":"Flow\\ETL\\Adapter\\Http\\Pagination","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"HTTP","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-http\/src\/Flow\/ETL\/Adapter\/Http\/DSL\/functions.php","start_line_in_file":180,"slug":"http-request-option-query","name":"http_request_option_query","namespace":"Flow\\ETL\\Adapter\\Http","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"RequestOption","namespace":"Flow\\ETL\\Adapter\\Http\\Pagination","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"HTTP","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-http\/src\/Flow\/ETL\/Adapter\/Http\/DSL\/functions.php","start_line_in_file":186,"slug":"http-request-option-header","name":"http_request_option_header","namespace":"Flow\\ETL\\Adapter\\Http","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"RequestOption","namespace":"Flow\\ETL\\Adapter\\Http\\Pagination","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"HTTP","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-http\/src\/Flow\/ETL\/Adapter\/Http\/DSL\/functions.php","start_line_in_file":192,"slug":"http-request-option-body","name":"http_request_option_body","namespace":"Flow\\ETL\\Adapter\\Http","parameters":[{"name":"path","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"stream_factory","type":[{"name":"StreamFactoryInterface","namespace":"Psr\\Http\\Message","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"RequestOption","namespace":"Flow\\ETL\\Adapter\\Http\\Pagination","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"HTTP","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-http\/src\/Flow\/ETL\/Adapter\/Http\/DSL\/functions.php","start_line_in_file":198,"slug":"http-request-option-uri","name":"http_request_option_uri","namespace":"Flow\\ETL\\Adapter\\Http","parameters":[],"return_type":[{"name":"RequestOption","namespace":"Flow\\ETL\\Adapter\\Http\\Pagination","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"HTTP","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-http\/src\/Flow\/ETL\/Adapter\/Http\/DSL\/functions.php","start_line_in_file":204,"slug":"http-stop-when-path-missing","name":"http_stop_when_path_missing","namespace":"Flow\\ETL\\Adapter\\Http","parameters":[{"name":"path","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"StopWhen","namespace":"Flow\\ETL\\Adapter\\Http\\Pagination","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"HTTP","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-http\/src\/Flow\/ETL\/Adapter\/Http\/DSL\/functions.php","start_line_in_file":210,"slug":"http-stop-when-empty-path","name":"http_stop_when_empty_path","namespace":"Flow\\ETL\\Adapter\\Http","parameters":[{"name":"path","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"StopWhen","namespace":"Flow\\ETL\\Adapter\\Http\\Pagination","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"HTTP","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-http\/src\/Flow\/ETL\/Adapter\/Http\/DSL\/functions.php","start_line_in_file":216,"slug":"http-stop-when-flag-false","name":"http_stop_when_flag_false","namespace":"Flow\\ETL\\Adapter\\Http","parameters":[{"name":"path","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"StopWhen","namespace":"Flow\\ETL\\Adapter\\Http\\Pagination","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"HTTP","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-http\/src\/Flow\/ETL\/Adapter\/Http\/DSL\/functions.php","start_line_in_file":222,"slug":"http-stop-when-flag-true","name":"http_stop_when_flag_true","namespace":"Flow\\ETL\\Adapter\\Http","parameters":[{"name":"path","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"StopWhen","namespace":"Flow\\ETL\\Adapter\\Http\\Pagination","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"HTTP","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-http\/src\/Flow\/ETL\/Adapter\/Http\/DSL\/functions.php","start_line_in_file":228,"slug":"http-stop-when-total-reached","name":"http_stop_when_total_reached","namespace":"Flow\\ETL\\Adapter\\Http","parameters":[{"name":"total_path","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"StopWhen","namespace":"Flow\\ETL\\Adapter\\Http\\Pagination","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"HTTP","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-http\/src\/Flow\/ETL\/Adapter\/Http\/DSL\/functions.php","start_line_in_file":234,"slug":"http-stop-when-max-pages","name":"http_stop_when_max_pages","namespace":"Flow\\ETL\\Adapter\\Http","parameters":[{"name":"pages","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"StopWhen","namespace":"Flow\\ETL\\Adapter\\Http\\Pagination","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"HTTP","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-http\/src\/Flow\/ETL\/Adapter\/Http\/DSL\/functions.php","start_line_in_file":240,"slug":"http-stop-when-max-results","name":"http_stop_when_max_results","namespace":"Flow\\ETL\\Adapter\\Http","parameters":[{"name":"count","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"StopWhen","namespace":"Flow\\ETL\\Adapter\\Http\\Pagination","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"HTTP","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-json\/src\/Flow\/ETL\/Adapter\/JSON\/functions.php","start_line_in_file":32,"slug":"from-json","name":"from_json","namespace":"Flow\\ETL\\Adapter\\JSON","parameters":[{"name":"path","type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"pointer","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"schema","type":[{"name":"Schema","namespace":"Flow\\ETL","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"filesystem","type":[{"name":"Filesystem","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Filesystem\\Local\\NativeLocalFilesystem::..."}],"return_type":[{"name":"JsonExtractor","namespace":"Flow\\ETL\\Adapter\\JSON\\JSONMachine","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"JSON","type":"EXTRACTOR"}},{"name":"DocumentationExample","namespace":"Flow\\Documentation\\Attribute","arguments":{"topic":"reading","example":"json"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBQYXRofHN0cmluZyAkcGF0aCAtIHN0cmluZyBpcyBpbnRlcm5hbGx5IHR1cm5lZCBpbnRvIHN0cmVhbQogKiBAcGFyYW0gP3N0cmluZyAkcG9pbnRlciAtIGlmIHlvdSB3YW50IHRvIGl0ZXJhdGUgb25seSByZXN1bHRzIG9mIGEgc3VidHJlZSwgdXNlIGEgcG9pbnRlciwgcmVhZCBtb3JlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9oYWxheGEvanNvbi1tYWNoaW5lI3BhcnNpbmctYS1zdWJ0cmVlIC0gQGRlcHJlY2F0ZSB1c2Ugd2l0aFBvaW50ZXIgbWV0aG9kIGluc3RlYWQKICogQHBhcmFtIG51bGx8U2NoZW1hICRzY2hlbWEgLSBlbmZvcmNlIHNjaGVtYSBvbiB0aGUgZXh0cmFjdGVkIGRhdGEgLSBAZGVwcmVjYXRlIHVzZSB3aXRoU2NoZW1hIG1ldGhvZCBpbnN0ZWFkCiAqLw=="},{"repository_path":"src\/adapter\/etl-adapter-json\/src\/Flow\/ETL\/Adapter\/JSON\/functions.php","start_line_in_file":58,"slug":"from-json-lines","name":"from_json_lines","namespace":"Flow\\ETL\\Adapter\\JSON","parameters":[{"name":"path","type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"filesystem","type":[{"name":"Filesystem","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Filesystem\\Local\\NativeLocalFilesystem::..."}],"return_type":[{"name":"JsonExtractor","namespace":"Flow\\ETL\\Adapter\\JSON\\JSONMachine","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"JSON","type":"EXTRACTOR"}},{"name":"DocumentationExample","namespace":"Flow\\Documentation\\Attribute","arguments":{"topic":"reading","example":"jsonl"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIFVzZWQgdG8gcmVhZCBmcm9tIGEgSlNPTiBsaW5lcyBodHRwczovL2pzb25saW5lcy5vcmcvIGZvcm1hdHRlZCBmaWxlLgogKgogKiBAcGFyYW0gUGF0aHxzdHJpbmcgJHBhdGggLSBzdHJpbmcgaXMgaW50ZXJuYWxseSB0dXJuZWQgaW50byBzdHJlYW0KICov"},{"repository_path":"src\/adapter\/etl-adapter-json\/src\/Flow\/ETL\/Adapter\/JSON\/functions.php","start_line_in_file":72,"slug":"to-json","name":"to_json","namespace":"Flow\\ETL\\Adapter\\JSON","parameters":[{"name":"path","type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"flags","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"4194304"},{"name":"date_time_format","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'Y-m-d\\\\TH:i:sP'"},{"name":"put_rows_in_new_lines","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"filesystem","type":[{"name":"Filesystem","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Filesystem\\Local\\NativeLocalFilesystem::..."}],"return_type":[{"name":"JsonLoader","namespace":"Flow\\ETL\\Adapter\\JSON","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"JSON","type":"LOADER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBQYXRofHN0cmluZyAkcGF0aAogKiBAcGFyYW0gaW50ICRmbGFncyAtIFBIUCBKU09OIEZsYWdzIC0gQGRlcHJlY2F0ZSB1c2Ugd2l0aEZsYWdzIG1ldGhvZCBpbnN0ZWFkCiAqIEBwYXJhbSBzdHJpbmcgJGRhdGVfdGltZV9mb3JtYXQgLSBmb3JtYXQgZm9yIERhdGVUaW1lSW50ZXJmYWNlOjpmb3JtYXQoKSAtIEBkZXByZWNhdGUgdXNlIHdpdGhEYXRlVGltZUZvcm1hdCBtZXRob2QgaW5zdGVhZAogKiBAcGFyYW0gYm9vbCAkcHV0X3Jvd3NfaW5fbmV3X2xpbmVzIC0gaWYgeW91IHdhbnQgdG8gcHV0IGVhY2ggcm93IGluIGEgbmV3IGxpbmUgLSBAZGVwcmVjYXRlIHVzZSB3aXRoUm93c0luTmV3TGluZXMgbWV0aG9kIGluc3RlYWQKICoKICogQHJldHVybiBKc29uTG9hZGVyCiAqLw=="},{"repository_path":"src\/adapter\/etl-adapter-json\/src\/Flow\/ETL\/Adapter\/JSON\/functions.php","start_line_in_file":93,"slug":"to-json-lines","name":"to_json_lines","namespace":"Flow\\ETL\\Adapter\\JSON","parameters":[{"name":"path","type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"filesystem","type":[{"name":"Filesystem","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Filesystem\\Local\\NativeLocalFilesystem::..."}],"return_type":[{"name":"JsonLoader","namespace":"Flow\\ETL\\Adapter\\JSON","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"JSON","type":"LOADER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIFVzZWQgdG8gd3JpdGUgdG8gYSBKU09OIGxpbmVzIGh0dHBzOi8vanNvbmxpbmVzLm9yZy8gZm9ybWF0dGVkIGZpbGUuCiAqCiAqIEBwYXJhbSBQYXRofHN0cmluZyAkcGF0aAogKgogKiBAcmV0dXJuIEpzb25Mb2FkZXIKICov"},{"repository_path":"src\/adapter\/etl-adapter-json\/src\/Flow\/ETL\/Adapter\/JSON\/functions.php","start_line_in_file":107,"slug":"schema-from-json-schema","name":"schema_from_json_schema","namespace":"Flow\\ETL\\Adapter\\JSON","parameters":[{"name":"json_schema","type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"client","type":[{"name":"ClientInterface","namespace":"Psr\\Http\\Client","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"request_factory","type":[{"name":"RequestFactoryInterface","namespace":"Psr\\Http\\Message","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"filesystem","type":[{"name":"Filesystem","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Filesystem\\Local\\NativeLocalFilesystem::..."}],"return_type":[{"name":"Schema","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"JSON","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENvbnZlcnQgYSBKU09OIFNjaGVtYSAoaHR0cHM6Ly9qc29uLXNjaGVtYS5vcmcpIGRvY3VtZW50IGludG8gYSBGbG93IFNjaGVtYS4KICoKICogQHBhcmFtIGFycmF5PHN0cmluZywgbWl4ZWQ+fFBhdGh8c3RyaW5nICRqc29uX3NjaGVtYSAtIGRlY29kZWQgZG9jdW1lbnQsIHJhdyBKU09OIGRvY3VtZW50IG9yIGEgcGF0aCB0byBhIHNjaGVtYSBmaWxlCiAqIEBwYXJhbSBudWxsfENsaWVudEludGVyZmFjZSAkY2xpZW50IC0gUFNSLTE4IGh0dHAgY2xpZW50LCByZXF1aXJlZCB0byByZXNvbHZlIHJlbW90ZSBodHRwKHMpIHJlZmVyZW5jZXMKICogQHBhcmFtIG51bGx8UmVxdWVzdEZhY3RvcnlJbnRlcmZhY2UgJHJlcXVlc3RfZmFjdG9yeSAtIFBTUi0xNyByZXF1ZXN0IGZhY3RvcnksIHJlcXVpcmVkIHRvIHJlc29sdmUgcmVtb3RlIGh0dHAocykgcmVmZXJlbmNlcwogKiBAcGFyYW0gRmlsZXN5c3RlbSAkZmlsZXN5c3RlbSAtIGZpbGVzeXN0ZW0gdXNlZCB0byByZWFkIGxvY2FsIHNjaGVtYSByZWZlcmVuY2VzCiAqLw=="},{"repository_path":"src\/adapter\/etl-adapter-json\/src\/Flow\/ETL\/Adapter\/JSON\/functions.php","start_line_in_file":122,"slug":"schema-to-json-schema","name":"schema_to_json_schema","namespace":"Flow\\ETL\\Adapter\\JSON","parameters":[{"name":"schema","type":[{"name":"Schema","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"JSON","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENvbnZlcnQgYSBGbG93IFNjaGVtYSBpbnRvIGEgSlNPTiBTY2hlbWEgKGh0dHBzOi8vanNvbi1zY2hlbWEub3JnLCBkcmFmdCAyMDIwLTEyKSBkb2N1bWVudC4KICoKICogQHJldHVybiBhcnJheTxzdHJpbmcsIG1peGVkPgogKi8="},{"repository_path":"src\/adapter\/etl-adapter-parquet\/src\/Flow\/ETL\/Adapter\/Parquet\/functions.php","start_line_in_file":36,"slug":"from-parquet","name":"from_parquet","namespace":"Flow\\ETL\\Adapter\\Parquet","parameters":[{"name":"path","type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"columns","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"options","type":[{"name":"Options","namespace":"Flow\\Parquet","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Parquet\\Options::..."},{"name":"byte_order","type":[{"name":"ByteOrder","namespace":"Flow\\Parquet\\Binary","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Parquet\\Binary\\ByteOrder::..."},{"name":"offset","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"engine","type":[{"name":"ParquetEngine","namespace":"Flow\\Parquet","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"filesystem","type":[{"name":"Filesystem","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Filesystem\\Local\\NativeLocalFilesystem::..."}],"return_type":[{"name":"ParquetExtractor","namespace":"Flow\\ETL\\Adapter\\Parquet","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PARQUET","type":"EXTRACTOR"}},{"name":"DocumentationExample","namespace":"Flow\\Documentation\\Attribute","arguments":{"topic":"reading","example":"parquet"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBQYXRofHN0cmluZyAkcGF0aAogKiBAcGFyYW0gYXJyYXk8c3RyaW5nPiAkY29sdW1ucyAtIGxpc3Qgb2YgY29sdW1ucyB0byByZWFkIGZyb20gcGFycXVldCBmaWxlIC0gQGRlcHJlY2F0ZWQgdXNlIGB3aXRoQ29sdW1uc2AgbWV0aG9kIGluc3RlYWQKICogQHBhcmFtIE9wdGlvbnMgJG9wdGlvbnMgLSBAZGVwcmVjYXRlZCB1c2UgYHdpdGhPcHRpb25zYCBtZXRob2QgaW5zdGVhZAogKiBAcGFyYW0gQnl0ZU9yZGVyICRieXRlX29yZGVyIC0gQGRlcHJlY2F0ZWQgdXNlIGB3aXRoQnl0ZU9yZGVyYCBtZXRob2QgaW5zdGVhZAogKiBAcGFyYW0gbnVsbHxpbnQgJG9mZnNldCAtIEBkZXByZWNhdGVkIHVzZSBgd2l0aE9mZnNldGAgbWV0aG9kIGluc3RlYWQKICov"},{"repository_path":"src\/adapter\/etl-adapter-parquet\/src\/Flow\/ETL\/Adapter\/Parquet\/functions.php","start_line_in_file":69,"slug":"to-parquet","name":"to_parquet","namespace":"Flow\\ETL\\Adapter\\Parquet","parameters":[{"name":"path","type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"options","type":[{"name":"Options","namespace":"Flow\\Parquet","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"compressions","type":[{"name":"Compressions","namespace":"Flow\\Parquet\\ParquetFile","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Parquet\\ParquetFile\\Compressions::..."},{"name":"schema","type":[{"name":"Schema","namespace":"Flow\\ETL","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"engine","type":[{"name":"ParquetEngine","namespace":"Flow\\Parquet","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"filesystem","type":[{"name":"Filesystem","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Filesystem\\Local\\NativeLocalFilesystem::..."}],"return_type":[{"name":"ParquetLoader","namespace":"Flow\\ETL\\Adapter\\Parquet","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PARQUET","type":"LOADER"}},{"name":"DocumentationExample","namespace":"Flow\\Documentation\\Attribute","arguments":{"topic":"writing","example":"parquet"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBQYXRofHN0cmluZyAkcGF0aAogKiBAcGFyYW0gbnVsbHxPcHRpb25zICRvcHRpb25zIC0gQGRlcHJlY2F0ZWQgdXNlIGB3aXRoT3B0aW9uc2AgbWV0aG9kIGluc3RlYWQKICogQHBhcmFtIENvbXByZXNzaW9ucyAkY29tcHJlc3Npb25zIC0gQGRlcHJlY2F0ZWQgdXNlIGB3aXRoQ29tcHJlc3Npb25zYCBtZXRob2QgaW5zdGVhZAogKiBAcGFyYW0gbnVsbHxTY2hlbWEgJHNjaGVtYSAtIEBkZXByZWNhdGVkIHVzZSBgd2l0aFNjaGVtYWAgbWV0aG9kIGluc3RlYWQKICov"},{"repository_path":"src\/adapter\/etl-adapter-parquet\/src\/Flow\/ETL\/Adapter\/Parquet\/functions.php","start_line_in_file":100,"slug":"array-to-generator","name":"array_to_generator","namespace":"Flow\\ETL\\Adapter\\Parquet","parameters":[{"name":"data","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Generator","namespace":"","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PARQUET","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEB0ZW1wbGF0ZSBUCiAqCiAqIEBwYXJhbSBhcnJheTxUPiAkZGF0YQogKgogKiBAcmV0dXJuIFxHZW5lcmF0b3I8VD4KICov"},{"repository_path":"src\/adapter\/etl-adapter-parquet\/src\/Flow\/ETL\/Adapter\/Parquet\/functions.php","start_line_in_file":111,"slug":"empty-generator","name":"empty_generator","namespace":"Flow\\ETL\\Adapter\\Parquet","parameters":[],"return_type":[{"name":"Generator","namespace":"","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PARQUET","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBkZXByZWNhdGVkIHVzZSBGbG93XFBhcnF1ZXRcZW1wdHlfZ2VuZXJhdG9yKCkgaW5zdGVhZAogKi8="},{"repository_path":"src\/adapter\/etl-adapter-parquet\/src\/Flow\/ETL\/Adapter\/Parquet\/functions.php","start_line_in_file":117,"slug":"schema-to-parquet","name":"schema_to_parquet","namespace":"Flow\\ETL\\Adapter\\Parquet","parameters":[{"name":"schema","type":[{"name":"Schema","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Schema","namespace":"Flow\\Parquet\\ParquetFile","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PARQUET","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-parquet\/src\/Flow\/ETL\/Adapter\/Parquet\/functions.php","start_line_in_file":123,"slug":"schema-from-parquet","name":"schema_from_parquet","namespace":"Flow\\ETL\\Adapter\\Parquet","parameters":[{"name":"schema","type":[{"name":"Schema","namespace":"Flow\\Parquet\\ParquetFile","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Schema","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PARQUET","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-postgresql\/src\/Flow\/ETL\/Adapter\/PostgreSql\/functions.php","start_line_in_file":39,"slug":"from-pgsql-cursor","name":"from_pgsql_cursor","namespace":"Flow\\ETL\\Adapter\\PostgreSql","parameters":[{"name":"client","type":[{"name":"Client","namespace":"Flow\\PostgreSql\\Client","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"query","type":[{"name":"Sql","namespace":"Flow\\PostgreSql\\QueryBuilder","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"parameters","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"}],"return_type":[{"name":"PostgreSqlCursorExtractor","namespace":"Flow\\ETL\\Adapter\\PostgreSql","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"POSTGRESQL","type":"EXTRACTOR"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFBvc3RncmVTUUwgY3Vyc29yIGV4dHJhY3RvciB1c2luZyBzZXJ2ZXItc2lkZSBjdXJzb3JzIGZvciBtZW1vcnktZWZmaWNpZW50IGV4dHJhY3Rpb24uCiAqCiAqIFVzZXMgREVDTEFSRSBDVVJTT1IgKyBGRVRDSCB0byBzdHJlYW0gZGF0YSB3aXRob3V0IGxvYWRpbmcgZW50aXJlIHJlc3VsdCBzZXQgaW50byBtZW1vcnkuCiAqIFRoaXMgaXMgdGhlIG9ubHkgd2F5IHRvIGFjaGlldmUgdHJ1ZSBsb3cgbWVtb3J5IGV4dHJhY3Rpb24gd2l0aCBQSFAncyBleHQtcGdzcWwuCiAqCiAqIE5vdGU6IFJlcXVpcmVzIGEgdHJhbnNhY3Rpb24gY29udGV4dCAoYXV0by1zdGFydGVkIGlmIG5vdCBpbiBvbmUpLgogKgogKiBAcGFyYW0gQ2xpZW50ICRjbGllbnQgUG9zdGdyZVNRTCBjbGllbnQKICogQHBhcmFtIFNxbHxzdHJpbmcgJHF1ZXJ5IFNRTCBxdWVyeSB0byBleGVjdXRlICh3cmFwcGVkIGluIERFQ0xBUkUgQ1VSU09SKQogKiBAcGFyYW0gbGlzdDxtaXhlZD4gJHBhcmFtZXRlcnMgVmFsdWVzIGJvdW5kIGJ5IHBvc2l0aW9uIHRvICQxLCAkMiwgLi4uIHBsYWNlaG9sZGVyczsgd3JhcCB3aXRoIHtAc2VlIFxGbG93XFBvc3RncmVTcWxcRFNMXHR5cGVkKCl9IHRvIGZvcmNlIGEgc3BlY2lmaWMgUG9zdGdyZVNRTCB0eXBlCiAqLw=="},{"repository_path":"src\/adapter\/etl-adapter-postgresql\/src\/Flow\/ETL\/Adapter\/PostgreSql\/functions.php","start_line_in_file":55,"slug":"from-pgsql-limit-offset","name":"from_pgsql_limit_offset","namespace":"Flow\\ETL\\Adapter\\PostgreSql","parameters":[{"name":"client","type":[{"name":"Client","namespace":"Flow\\PostgreSql\\Client","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"query","type":[{"name":"Sql","namespace":"Flow\\PostgreSql\\QueryBuilder","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"parameters","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"}],"return_type":[{"name":"PostgreSqlLimitOffsetExtractor","namespace":"Flow\\ETL\\Adapter\\PostgreSql","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"POSTGRESQL","type":"EXTRACTOR"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFBvc3RncmVTUUwgZXh0cmFjdG9yIHVzaW5nIExJTUlUL09GRlNFVCBwYWdpbmF0aW9uLgogKgogKiBTdWl0YWJsZSBmb3Igc21hbGxlciBkYXRhc2V0cy4gRm9yIGxhcmdlIGRhdGFzZXRzLCBjb25zaWRlciB1c2luZyBrZXlzZXQgcGFnaW5hdGlvbgogKiAoZnJvbV9wZ3NxbF9rZXlfc2V0KSB3aGljaCBpcyBtb3JlIGVmZmljaWVudC4KICoKICogQHBhcmFtIENsaWVudCAkY2xpZW50IFBvc3RncmVTUUwgY2xpZW50CiAqIEBwYXJhbSBTcWx8c3RyaW5nICRxdWVyeSBTUUwgcXVlcnkgdG8gZXhlY3V0ZSAobXVzdCBoYXZlIE9SREVSIEJZIGNsYXVzZSkKICogQHBhcmFtIGxpc3Q8bWl4ZWQ+ICRwYXJhbWV0ZXJzIFZhbHVlcyBib3VuZCBieSBwb3NpdGlvbiB0byAkMSwgJDIsIC4uLiBwbGFjZWhvbGRlcnM7IHdyYXAgd2l0aCB7QHNlZSBcRmxvd1xQb3N0Z3JlU3FsXERTTFx0eXBlZCgpfSB0byBmb3JjZSBhIHNwZWNpZmljIFBvc3RncmVTUUwgdHlwZQogKi8="},{"repository_path":"src\/adapter\/etl-adapter-postgresql\/src\/Flow\/ETL\/Adapter\/PostgreSql\/functions.php","start_line_in_file":75,"slug":"from-pgsql-key-set","name":"from_pgsql_key_set","namespace":"Flow\\ETL\\Adapter\\PostgreSql","parameters":[{"name":"client","type":[{"name":"Client","namespace":"Flow\\PostgreSql\\Client","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"query","type":[{"name":"Sql","namespace":"Flow\\PostgreSql\\QueryBuilder","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"keySet","type":[{"name":"KeySet","namespace":"Flow\\ETL\\Adapter\\PostgreSql\\Pagination","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"parameters","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"}],"return_type":[{"name":"PostgreSqlKeySetExtractor","namespace":"Flow\\ETL\\Adapter\\PostgreSql","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"POSTGRESQL","type":"EXTRACTOR"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFBvc3RncmVTUUwgZXh0cmFjdG9yIHVzaW5nIGtleXNldCAoY3Vyc29yLWJhc2VkKSBwYWdpbmF0aW9uLgogKgogKiBNb3JlIGVmZmljaWVudCB0aGFuIExJTUlUL09GRlNFVCBmb3IgbGFyZ2UgZGF0YXNldHMgLSB1c2VzIGluZGV4ZWQgV0hFUkUgY29uZGl0aW9ucwogKiBpbnN0ZWFkIG9mIHNraXBwaW5nIHJvd3MuCiAqCiAqIEBwYXJhbSBDbGllbnQgJGNsaWVudCBQb3N0Z3JlU1FMIGNsaWVudAogKiBAcGFyYW0gU3FsfHN0cmluZyAkcXVlcnkgU1FMIHF1ZXJ5IHRvIGV4ZWN1dGUgKE9SREVSIEJZIG9wdGlvbmFsOyB3aGVuIHByZXNlbnQgaXQgbXVzdCBlcXVhbCB0aGUga2V5czsgbm8gTElNSVQvT0ZGU0VUOyBrZXlzIGluZGV4ZWQsIG5vbi1udWxsLCB1bmlxdWUpCiAqIEBwYXJhbSBLZXlTZXQgJGtleVNldCBDb2x1bW5zIHRvIHVzZSBmb3Iga2V5c2V0IHBhZ2luYXRpb24KICogQHBhcmFtIGxpc3Q8bWl4ZWQ+ICRwYXJhbWV0ZXJzIFZhbHVlcyBib3VuZCBieSBwb3NpdGlvbiB0byAkMSwgJDIsIC4uLiBwbGFjZWhvbGRlcnM7IHdyYXAgd2l0aCB7QHNlZSBcRmxvd1xQb3N0Z3JlU3FsXERTTFx0eXBlZCgpfSB0byBmb3JjZSBhIHNwZWNpZmljIFBvc3RncmVTUUwgdHlwZQogKi8="},{"repository_path":"src\/adapter\/etl-adapter-postgresql\/src\/Flow\/ETL\/Adapter\/PostgreSql\/functions.php","start_line_in_file":85,"slug":"pgsql-pagination-key-asc","name":"pgsql_pagination_key_asc","namespace":"Flow\\ETL\\Adapter\\PostgreSql","parameters":[{"name":"column","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Key","namespace":"Flow\\ETL\\Adapter\\PostgreSql\\Pagination","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"POSTGRESQL","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-postgresql\/src\/Flow\/ETL\/Adapter\/PostgreSql\/functions.php","start_line_in_file":91,"slug":"pgsql-pagination-key-desc","name":"pgsql_pagination_key_desc","namespace":"Flow\\ETL\\Adapter\\PostgreSql","parameters":[{"name":"column","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Key","namespace":"Flow\\ETL\\Adapter\\PostgreSql\\Pagination","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"POSTGRESQL","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-postgresql\/src\/Flow\/ETL\/Adapter\/PostgreSql\/functions.php","start_line_in_file":97,"slug":"pgsql-pagination-key-set","name":"pgsql_pagination_key_set","namespace":"Flow\\ETL\\Adapter\\PostgreSql","parameters":[{"name":"keys","type":[{"name":"Key","namespace":"Flow\\ETL\\Adapter\\PostgreSql\\Pagination","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"KeySet","namespace":"Flow\\ETL\\Adapter\\PostgreSql\\Pagination","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"POSTGRESQL","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-postgresql\/src\/Flow\/ETL\/Adapter\/PostgreSql\/functions.php","start_line_in_file":103,"slug":"to-pgsql-table","name":"to_pgsql_table","namespace":"Flow\\ETL\\Adapter\\PostgreSql","parameters":[{"name":"client","type":[{"name":"Client","namespace":"Flow\\PostgreSql\\Client","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"table","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"PostgreSqlLoader","namespace":"Flow\\ETL\\Adapter\\PostgreSql","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"POSTGRESQL","type":"LOADER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-postgresql\/src\/Flow\/ETL\/Adapter\/PostgreSql\/functions.php","start_line_in_file":112,"slug":"to-pgsql-transaction","name":"to_pgsql_transaction","namespace":"Flow\\ETL\\Adapter\\PostgreSql","parameters":[{"name":"client","type":[{"name":"Client","namespace":"Flow\\PostgreSql\\Client","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"sinks","type":[{"name":"Loader","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false},{"name":"Sink","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"Transactional","namespace":"Flow\\ETL\\Sink","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"POSTGRESQL","type":"LOADER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIFdyaXRlIGV2ZXJ5IHNpbmsgd2l0aGluIFBvc3RncmVTUUwgdHJhbnNhY3Rpb25zLgogKi8="},{"repository_path":"src\/adapter\/etl-adapter-postgresql\/src\/Flow\/ETL\/Adapter\/PostgreSql\/functions.php","start_line_in_file":126,"slug":"pgsql-insert-options","name":"pgsql_insert_options","namespace":"Flow\\ETL\\Adapter\\PostgreSql","parameters":[{"name":"skipConflicts","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"conflictColumns","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"conflictConstraint","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"updateColumns","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"}],"return_type":[{"name":"InsertOptions","namespace":"Flow\\ETL\\Adapter\\PostgreSql\\LoaderOptions","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"POSTGRESQL","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBpbnNlcnQgb3B0aW9ucyBmb3IgUG9zdGdyZVNRTCBsb2FkZXIuCiAqCiAqIEBwYXJhbSBib29sICRza2lwQ29uZmxpY3RzIElmIHRydWUsIHVzZSBPTiBDT05GTElDVCBETyBOT1RISU5HCiAqIEBwYXJhbSBsaXN0PHN0cmluZz4gJGNvbmZsaWN0Q29sdW1ucyBDb2x1bW4gbmFtZXMgZm9yIE9OIENPTkZMSUNUIChjb2x1bW5zKQogKiBAcGFyYW0gbnVsbHxzdHJpbmcgJGNvbmZsaWN0Q29uc3RyYWludCBDb25zdHJhaW50IG5hbWUgZm9yIE9OIENPTkZMSUNUIE9OIENPTlNUUkFJTlQKICogQHBhcmFtIGxpc3Q8c3RyaW5nPiAkdXBkYXRlQ29sdW1ucyBDb2x1bW5zIHRvIHVwZGF0ZSBvbiBjb25mbGljdCAoZW1wdHkgPSBhbGwgbm9uLWtleSBjb2x1bW5zKQogKi8="},{"repository_path":"src\/adapter\/etl-adapter-postgresql\/src\/Flow\/ETL\/Adapter\/PostgreSql\/functions.php","start_line_in_file":141,"slug":"pgsql-update-options","name":"pgsql_update_options","namespace":"Flow\\ETL\\Adapter\\PostgreSql","parameters":[{"name":"primaryKeys","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"UpdateOptions","namespace":"Flow\\ETL\\Adapter\\PostgreSql\\LoaderOptions","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"POSTGRESQL","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSB1cGRhdGUgb3B0aW9ucyBmb3IgUG9zdGdyZVNRTCBsb2FkZXIuCiAqCiAqIEBwYXJhbSBsaXN0PHN0cmluZz4gJHByaW1hcnlLZXlzIENvbHVtbnMgdG8gdXNlIGluIFdIRVJFIGNsYXVzZSBmb3IgbWF0Y2hpbmcgcm93cwogKi8="},{"repository_path":"src\/adapter\/etl-adapter-postgresql\/src\/Flow\/ETL\/Adapter\/PostgreSql\/functions.php","start_line_in_file":152,"slug":"pgsql-delete-options","name":"pgsql_delete_options","namespace":"Flow\\ETL\\Adapter\\PostgreSql","parameters":[{"name":"primaryKeys","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"DeleteOptions","namespace":"Flow\\ETL\\Adapter\\PostgreSql\\LoaderOptions","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"POSTGRESQL","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBkZWxldGUgb3B0aW9ucyBmb3IgUG9zdGdyZVNRTCBsb2FkZXIuCiAqCiAqIEBwYXJhbSBsaXN0PHN0cmluZz4gJHByaW1hcnlLZXlzIENvbHVtbnMgdG8gdXNlIGluIFdIRVJFIGNsYXVzZSBmb3IgbWF0Y2hpbmcgcm93cwogKi8="},{"repository_path":"src\/adapter\/etl-adapter-postgresql\/src\/Flow\/ETL\/Adapter\/PostgreSql\/functions.php","start_line_in_file":164,"slug":"to-pgsql-schema-table","name":"to_pgsql_schema_table","namespace":"Flow\\ETL\\Adapter\\PostgreSql","parameters":[{"name":"schema","type":[{"name":"Schema","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"tableName","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"databaseSchema","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'public'"},{"name":"typesMap","type":[{"name":"TypesMap","namespace":"Flow\\ETL\\Adapter\\PostgreSql","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"options","type":[{"name":"TableOptions","namespace":"Flow\\PostgreSql\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Table","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"POSTGRESQL","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENvbnZlcnQgYSBGbG93IFNjaGVtYSBpbnRvIGEgUG9zdGdyZVNRTCB0YWJsZSBkZWZpbml0aW9uLgogKgogKiBAcGFyYW0gc3RyaW5nICRkYXRhYmFzZVNjaGVtYSBQb3N0Z3JlU1FMIHNjaGVtYSAobmFtZXNwYWNlKSB0aGUgdGFibGUgYmVsb25ncyB0bwogKiBAcGFyYW0gP1RhYmxlT3B0aW9ucyAkb3B0aW9ucyB0YWJsZS1sZXZlbCBvcHRpb25zIHRoZSBGbG93IFNjaGVtYSBjYW5ub3QgZXhwcmVzcyAoZS5nLiBVTkxPR0dFRCkKICov"},{"repository_path":"src\/adapter\/etl-adapter-postgresql\/src\/Flow\/ETL\/Adapter\/PostgreSql\/functions.php","start_line_in_file":178,"slug":"pgsql-table-to-flow-schema","name":"pgsql_table_to_flow_schema","namespace":"Flow\\ETL\\Adapter\\PostgreSql","parameters":[{"name":"table","type":[{"name":"Table","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"typesMap","type":[{"name":"TypesMap","namespace":"Flow\\ETL\\Adapter\\PostgreSql","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Schema","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"POSTGRESQL","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENvbnZlcnQgYSBQb3N0Z3JlU1FMIHRhYmxlIGRlZmluaXRpb24gaW50byBhIEZsb3cgU2NoZW1hLgogKi8="},{"repository_path":"src\/adapter\/etl-adapter-postgresql\/src\/Flow\/ETL\/Adapter\/PostgreSql\/functions.php","start_line_in_file":184,"slug":"pgsql-schema-sort-by-type","name":"pgsql_schema_sort_by_type","namespace":"Flow\\ETL\\Adapter\\PostgreSql","parameters":[{"name":"typesMap","type":[{"name":"TypesMap","namespace":"Flow\\ETL\\Adapter\\PostgreSql","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"TypeStrategy","namespace":"Flow\\ETL\\Adapter\\PostgreSql\\Schema\\SortingStrategy","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"POSTGRESQL","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-seal\/src\/Flow\/ETL\/Adapter\/Seal\/functions.php","start_line_in_file":15,"slug":"to-seal-upsert","name":"to_seal_upsert","namespace":"Flow\\ETL\\Adapter\\Seal","parameters":[{"name":"engine","type":[{"name":"EngineInterface","namespace":"CmsIg\\Seal","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"index","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"SealLoader","namespace":"Flow\\ETL\\Adapter\\Seal","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"SEAL","type":"LOADER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-seal\/src\/Flow\/ETL\/Adapter\/Seal\/functions.php","start_line_in_file":21,"slug":"to-seal-delete","name":"to_seal_delete","namespace":"Flow\\ETL\\Adapter\\Seal","parameters":[{"name":"engine","type":[{"name":"EngineInterface","namespace":"CmsIg\\Seal","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"index","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"SealLoader","namespace":"Flow\\ETL\\Adapter\\Seal","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"SEAL","type":"LOADER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-seal\/src\/Flow\/ETL\/Adapter\/Seal\/functions.php","start_line_in_file":27,"slug":"to-seal-schema","name":"to_seal_schema","namespace":"Flow\\ETL\\Adapter\\Seal","parameters":[{"name":"schema","type":[{"name":"Schema","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"index_name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"identifier","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Schema","namespace":"CmsIg\\Seal\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"SEAL","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-seal\/src\/Flow\/ETL\/Adapter\/Seal\/functions.php","start_line_in_file":33,"slug":"seal-schema-to-flow","name":"seal_schema_to_flow","namespace":"Flow\\ETL\\Adapter\\Seal","parameters":[{"name":"schema","type":[{"name":"Schema","namespace":"CmsIg\\Seal\\Schema","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Schema","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"SEAL","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/adapter\/etl-adapter-text\/src\/Flow\/ETL\/Adapter\/Text\/functions.php","start_line_in_file":21,"slug":"from-text","name":"from_text","namespace":"Flow\\ETL\\Adapter\\Text","parameters":[{"name":"path","type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"filesystem","type":[{"name":"Filesystem","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Filesystem\\Local\\NativeLocalFilesystem::..."}],"return_type":[{"name":"TextExtractor","namespace":"Flow\\ETL\\Adapter\\Text","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TEXT","type":"EXTRACTOR"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBQYXRofHN0cmluZyAkcGF0aAogKi8="},{"repository_path":"src\/adapter\/etl-adapter-text\/src\/Flow\/ETL\/Adapter\/Text\/functions.php","start_line_in_file":31,"slug":"to-text","name":"to_text","namespace":"Flow\\ETL\\Adapter\\Text","parameters":[{"name":"path","type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"new_line_separator","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'\\n'"},{"name":"filesystem","type":[{"name":"Filesystem","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Filesystem\\Local\\NativeLocalFilesystem::..."}],"return_type":[{"name":"TextLoader","namespace":"Flow\\ETL\\Adapter\\Text","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TEXT","type":"LOADER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBQYXRofHN0cmluZyAkcGF0aAogKiBAcGFyYW0gc3RyaW5nICRuZXdfbGluZV9zZXBhcmF0b3IgLSBkZWZhdWx0IFBIUF9FT0wgLSBAZGVwcmVjYXRlZCB1c2Ugd2l0aE5ld0xpbmVTZXBhcmF0b3IgbWV0aG9kIGluc3RlYWQKICov"},{"repository_path":"src\/adapter\/etl-adapter-xml\/src\/Flow\/ETL\/Adapter\/XML\/functions.php","start_line_in_file":38,"slug":"from-xml","name":"from_xml","namespace":"Flow\\ETL\\Adapter\\XML","parameters":[{"name":"path","type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"xml_node_path","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"''"},{"name":"filesystem","type":[{"name":"Filesystem","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Filesystem\\Local\\NativeLocalFilesystem::..."}],"return_type":[{"name":"XMLParserExtractor","namespace":"Flow\\ETL\\Adapter\\XML","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"XML","type":"EXTRACTOR"}},{"name":"DocumentationExample","namespace":"Flow\\Documentation\\Attribute","arguments":{"topic":"reading","example":"xml"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqICBJbiBvcmRlciB0byBpdGVyYXRlIG9ubHkgb3ZlciA8ZWxlbWVudD4gbm9kZXMgdXNlIGBmcm9tX3htbCgkZmlsZSktPndpdGhYTUxOb2RlUGF0aCgncm9vdC9lbGVtZW50cy9lbGVtZW50JylgLgogKgogKiAgPHJvb3Q+CiAqICAgIDxlbGVtZW50cz4KICogICAgICA8ZWxlbWVudD48L2VsZW1lbnQ+CiAqICAgICAgPGVsZW1lbnQ+PC9lbGVtZW50PgogKiAgICA8ZWxlbWVudHM+CiAqICA8L3Jvb3Q+CiAqCiAqICBYTUwgTm9kZSBQYXRoIGRvZXMgbm90IHN1cHBvcnQgYXR0cmlidXRlcyBhbmQgaXQncyBub3QgeHBhdGgsIGl0IGlzIGp1c3QgYSBzZXF1ZW5jZQogKiAgb2Ygbm9kZSBuYW1lcyBzZXBhcmF0ZWQgd2l0aCBzbGFzaC4KICoKICogQHBhcmFtIFBhdGh8c3RyaW5nICRwYXRoCiAqIEBwYXJhbSBzdHJpbmcgJHhtbF9ub2RlX3BhdGggLSBAZGVwcmVjYXRlZCB1c2UgYGZyb21feG1sKCRmaWxlKS0+d2l0aFhNTE5vZGVQYXRoKCR4bWxOb2RlUGF0aClgIG1ldGhvZCBpbnN0ZWFkCiAqLw=="},{"repository_path":"src\/adapter\/etl-adapter-xml\/src\/Flow\/ETL\/Adapter\/XML\/functions.php","start_line_in_file":57,"slug":"to-xml","name":"to_xml","namespace":"Flow\\ETL\\Adapter\\XML","parameters":[{"name":"path","type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"root_element_name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'rows'"},{"name":"row_element_name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'row'"},{"name":"attribute_prefix","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'_'"},{"name":"date_time_format","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'Y-m-d\\\\TH:i:s.uP'"},{"name":"xml_writer","type":[{"name":"XMLWriter","namespace":"Flow\\ETL\\Adapter\\XML","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Adapter\\XML\\XMLWriter\\StringXMLWriter::..."},{"name":"filesystem","type":[{"name":"Filesystem","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Filesystem\\Local\\NativeLocalFilesystem::..."}],"return_type":[{"name":"XMLLoader","namespace":"Flow\\ETL\\Adapter\\XML\\Loader","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"XML","type":"LOADER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBQYXRofHN0cmluZyAkcGF0aAogKiBAcGFyYW0gc3RyaW5nICRyb290X2VsZW1lbnRfbmFtZSAtIEBkZXByZWNhdGVkIHVzZSBgd2l0aFJvb3RFbGVtZW50TmFtZSgpYCBtZXRob2QgaW5zdGVhZAogKiBAcGFyYW0gc3RyaW5nICRyb3dfZWxlbWVudF9uYW1lIC0gQGRlcHJlY2F0ZWQgdXNlIGB3aXRoUm93RWxlbWVudE5hbWUoKWAgbWV0aG9kIGluc3RlYWQKICogQHBhcmFtIHN0cmluZyAkYXR0cmlidXRlX3ByZWZpeCAtIEBkZXByZWNhdGVkIHVzZSBgd2l0aEF0dHJpYnV0ZVByZWZpeCgpYCBtZXRob2QgaW5zdGVhZAogKiBAcGFyYW0gc3RyaW5nICRkYXRlX3RpbWVfZm9ybWF0IC0gQGRlcHJlY2F0ZWQgdXNlIGB3aXRoRGF0ZVRpbWVGb3JtYXQoKWAgbWV0aG9kIGluc3RlYWQKICogQHBhcmFtIFhNTFdyaXRlciAkeG1sX3dyaXRlcgogKi8="},{"repository_path":"src\/lib\/filesystem\/src\/Flow\/Filesystem\/DSL\/functions.php","start_line_in_file":32,"slug":"mount","name":"mount","namespace":"Flow\\Filesystem\\DSL","parameters":[{"name":"protocol","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Mount","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"FILESYSTEM","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/filesystem\/src\/Flow\/Filesystem\/DSL\/functions.php","start_line_in_file":38,"slug":"partition","name":"partition","namespace":"Flow\\Filesystem\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"value","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Partition","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"FILESYSTEM","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/filesystem\/src\/Flow\/Filesystem\/DSL\/functions.php","start_line_in_file":44,"slug":"partitions","name":"partitions","namespace":"Flow\\Filesystem\\DSL","parameters":[{"name":"partition","type":[{"name":"Partition","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"Partitions","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"FILESYSTEM","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/filesystem\/src\/Flow\/Filesystem\/DSL\/functions.php","start_line_in_file":63,"slug":"path","name":"path","namespace":"Flow\\Filesystem\\DSL","parameters":[{"name":"path","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"options","type":[{"name":"Options","namespace":"Flow\\Filesystem\\Path","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"}],"return_type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"FILESYSTEM","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIFBhdGggc3VwcG9ydHMgZ2xvYiBwYXR0ZXJucy4KICogRXhhbXBsZXM6CiAqICAtIHBhdGgoJyouY3N2JykgLSBhbnkgY3N2IGZpbGUgaW4gY3VycmVudCBkaXJlY3RvcnkKICogIC0gcGF0aCgnLyoqIC8gKi5jc3YnKSAtIGFueSBjc3YgZmlsZSBpbiBhbnkgc3ViZGlyZWN0b3J5IChyZW1vdmUgZW1wdHkgc3BhY2VzKQogKiAgLSBwYXRoKCcvZGlyL3BhcnRpdGlvbj0qIC8qLnBhcnF1ZXQnKSAtIGFueSBwYXJxdWV0IGZpbGUgaW4gZ2l2ZW4gcGFydGl0aW9uIGRpcmVjdG9yeS4KICoKICogR2xvYiBwYXR0ZXJuIGlzIGFsc28gc3VwcG9ydGVkIGJ5IHJlbW90ZSBmaWxlc3lzdGVtcyBsaWtlIEF6dXJlCiAqCiAqICAtIHBhdGgoJ2F6dXJlLWJsb2I6Ly9kaXJlY3RvcnkvKi5jc3YnKSAtIGFueSBjc3YgZmlsZSBpbiBnaXZlbiBkaXJlY3RvcnkKICoKICogQHBhcmFtIGFycmF5PHN0cmluZywgbnVsbHxib29sfGZsb2F0fGludHxzdHJpbmd8XFVuaXRFbnVtPnxQYXRoXE9wdGlvbnMgJG9wdGlvbnMKICov"},{"repository_path":"src\/lib\/filesystem\/src\/Flow\/Filesystem\/DSL\/functions.php","start_line_in_file":74,"slug":"path-real","name":"path_real","namespace":"Flow\\Filesystem\\DSL","parameters":[{"name":"path","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"options","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"}],"return_type":[{"name":"Path","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"FILESYSTEM","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIFJlc29sdmUgcmVhbCBwYXRoIGZyb20gZ2l2ZW4gcGF0aC4KICoKICogQHBhcmFtIGFycmF5PHN0cmluZywgbnVsbHxib29sfGZsb2F0fGludHxzdHJpbmd8XFVuaXRFbnVtPiAkb3B0aW9ucwogKi8="},{"repository_path":"src\/lib\/filesystem\/src\/Flow\/Filesystem\/DSL\/functions.php","start_line_in_file":80,"slug":"native-local-filesystem","name":"native_local_filesystem","namespace":"Flow\\Filesystem\\DSL","parameters":[{"name":"protocol","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'file'"}],"return_type":[{"name":"NativeLocalFilesystem","namespace":"Flow\\Filesystem\\Local","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"FILESYSTEM","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/filesystem\/src\/Flow\/Filesystem\/DSL\/functions.php","start_line_in_file":90,"slug":"stdout-filesystem","name":"stdout_filesystem","namespace":"Flow\\Filesystem\\DSL","parameters":[{"name":"protocol","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'stdout'"}],"return_type":[{"name":"StdOutFilesystem","namespace":"Flow\\Filesystem\\Local","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"FILESYSTEM","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIFdyaXRlLW9ubHkgZmlsZXN5c3RlbSB1c2VmdWwgd2hlbiB3ZSBqdXN0IHdhbnQgdG8gd3JpdGUgdGhlIG91dHB1dCB0byBzdGRvdXQuCiAqIFRoZSBtYWluIHVzZSBjYXNlIGlzIGZvciBzdHJlYW1pbmcgZGF0YXNldHMgb3ZlciBodHRwLgogKi8="},{"repository_path":"src\/lib\/filesystem\/src\/Flow\/Filesystem\/DSL\/functions.php","start_line_in_file":99,"slug":"memory-filesystem","name":"memory_filesystem","namespace":"Flow\\Filesystem\\DSL","parameters":[{"name":"protocol","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'memory'"}],"return_type":[{"name":"MemoryFilesystem","namespace":"Flow\\Filesystem\\Local","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"FILESYSTEM","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIG5ldyBtZW1vcnkgZmlsZXN5c3RlbSBhbmQgd3JpdGVzIGRhdGEgdG8gaXQgaW4gbWVtb3J5LgogKi8="},{"repository_path":"src\/lib\/filesystem\/src\/Flow\/Filesystem\/DSL\/functions.php","start_line_in_file":110,"slug":"fstab","name":"fstab","namespace":"Flow\\Filesystem\\DSL","parameters":[{"name":"filesystems","type":[{"name":"Filesystem","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"FilesystemTable","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"FILESYSTEM","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIG5ldyBmaWxlc3lzdGVtIHRhYmxlIHdpdGggZ2l2ZW4gZmlsZXN5c3RlbXMuCiAqIEZpbGVzeXN0ZW1zIGNhbiBiZSBhbHNvIG1vdW50ZWQgbGF0ZXIuCiAqIElmIG5vIGZpbGVzeXN0ZW1zIGFyZSBwcm92aWRlZCwgbG9jYWwgZmlsZXN5c3RlbSBpcyBtb3VudGVkLgogKi8="},{"repository_path":"src\/lib\/filesystem\/src\/Flow\/Filesystem\/DSL\/functions.php","start_line_in_file":126,"slug":"traceable-filesystem","name":"traceable_filesystem","namespace":"Flow\\Filesystem\\DSL","parameters":[{"name":"filesystem","type":[{"name":"Filesystem","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"telemetryConfig","type":[{"name":"FilesystemTelemetryConfig","namespace":"Flow\\Filesystem\\Telemetry","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"TraceableFilesystem","namespace":"Flow\\Filesystem\\Telemetry","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"FILESYSTEM","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIFdyYXAgYSBmaWxlc3lzdGVtIHdpdGggdGVsZW1ldHJ5IHRyYWNpbmcgc3VwcG9ydC4KICogQWxsIGZpbGVzeXN0ZW0gYW5kIHN0cmVhbSBvcGVyYXRpb25zIHdpbGwgYmUgdHJhY2VkIGFjY29yZGluZyB0byB0aGUgY29uZmlndXJhdGlvbi4KICov"},{"repository_path":"src\/lib\/filesystem\/src\/Flow\/Filesystem\/DSL\/functions.php","start_line_in_file":135,"slug":"filesystem-telemetry-config","name":"filesystem_telemetry_config","namespace":"Flow\\Filesystem\\DSL","parameters":[{"name":"telemetry","type":[{"name":"Telemetry","namespace":"Flow\\Telemetry","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"clock","type":[{"name":"ClockInterface","namespace":"Psr\\Clock","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"options","type":[{"name":"FilesystemTelemetryOptions","namespace":"Flow\\Filesystem\\Telemetry","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"FilesystemTelemetryConfig","namespace":"Flow\\Filesystem\\Telemetry","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"FILESYSTEM","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIHRlbGVtZXRyeSBjb25maWd1cmF0aW9uIGZvciB0aGUgZmlsZXN5c3RlbS4KICov"},{"repository_path":"src\/lib\/filesystem\/src\/Flow\/Filesystem\/DSL\/functions.php","start_line_in_file":150,"slug":"filesystem-telemetry-options","name":"filesystem_telemetry_options","namespace":"Flow\\Filesystem\\DSL","parameters":[{"name":"trace_streams","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"collect_metrics","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"}],"return_type":[{"name":"FilesystemTelemetryOptions","namespace":"Flow\\Filesystem\\Telemetry","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"FILESYSTEM","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBvcHRpb25zIGZvciBmaWxlc3lzdGVtIHRlbGVtZXRyeS4KICoKICogQHBhcmFtIGJvb2wgJHRyYWNlX3N0cmVhbXMgQ3JlYXRlIGEgc2luZ2xlIHNwYW4gcGVyIHN0cmVhbSBsaWZlY3ljbGUgKGRlZmF1bHQ6IE9OKQogKiBAcGFyYW0gYm9vbCAkY29sbGVjdF9tZXRyaWNzIENvbGxlY3QgbWV0cmljcyBmb3IgYnl0ZXMvb3BlcmF0aW9uIGNvdW50cyAoZGVmYXVsdDogT04pCiAqLw=="},{"repository_path":"src\/lib\/filesystem\/src\/Flow\/Filesystem\/DSL\/functions.php","start_line_in_file":163,"slug":"file-copy","name":"file_copy","namespace":"Flow\\Filesystem\\DSL","parameters":[{"name":"table","type":[{"name":"FilesystemTable","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"options","type":[{"name":"OperationOptions","namespace":"Flow\\Filesystem\\Operations","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Copy","namespace":"Flow\\Filesystem\\Operations","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"FILESYSTEM","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENvcHkgYSBmaWxlIGZyb20gb25lIHBhdGggdG8gYW5vdGhlciwgYWNyb3NzIGFueSBmaWxlc3lzdGVtcyBtb3VudGVkIGluIHRoZSB0YWJsZS4KICogQWx3YXlzIHN0cmVhbXMgYnl0ZXM7IHNhbWUtZmlsZXN5c3RlbSBjb3BpZXMgZG8gbm90IHVzZSBzZXJ2ZXItc2lkZSBvcHRpbWl6YXRpb25zCiAqIGJlY2F1c2UgYEZpbGVzeXN0ZW06Om12YCBpcyBhIG1vdmUsIG5vdCBhIGNvcHkuCiAqLw=="},{"repository_path":"src\/lib\/filesystem\/src\/Flow\/Filesystem\/DSL\/functions.php","start_line_in_file":174,"slug":"file-move","name":"file_move","namespace":"Flow\\Filesystem\\DSL","parameters":[{"name":"table","type":[{"name":"FilesystemTable","namespace":"Flow\\Filesystem","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"options","type":[{"name":"OperationOptions","namespace":"Flow\\Filesystem\\Operations","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Move","namespace":"Flow\\Filesystem\\Operations","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"FILESYSTEM","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIE1vdmUgYSBmaWxlIGZyb20gb25lIHBhdGggdG8gYW5vdGhlciwgYWNyb3NzIGFueSBmaWxlc3lzdGVtcyBtb3VudGVkIGluIHRoZSB0YWJsZS4KICogSW50cmEtZmlsZXN5c3RlbSBtb3ZlcyBkZWxlZ2F0ZSB0byBgRmlsZXN5c3RlbTo6bXZgIGZvciBzZXJ2ZXItc2lkZSBvcHRpbWl6YXRpb25zOwogKiBjcm9zcy1maWxlc3lzdGVtIG1vdmVzIHN0cmVhbS1jb3B5IHRoZW4gcmVtb3ZlIHRoZSBzb3VyY2UgKG5vbi1hdG9taWMpLgogKi8="},{"repository_path":"src\/lib\/filesystem\/src\/Flow\/Filesystem\/DSL\/functions.php","start_line_in_file":185,"slug":"operation-options","name":"operation_options","namespace":"Flow\\Filesystem\\DSL","parameters":[{"name":"chunkSize","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"8192"}],"return_type":[{"name":"OperationOptions","namespace":"Flow\\Filesystem\\Operations","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"FILESYSTEM","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIE9wdGlvbnMgc2hhcmVkIGJ5IGZpbGVzeXN0ZW0gb3BlcmF0aW9ucy4KICoKICogQHBhcmFtIGludCAkY2h1bmtTaXplIE51bWJlciBvZiBieXRlcyByZWFkL3dyaXR0ZW4gcGVyIGl0ZXJhdGlvbiB3aGVuIHN0cmVhbWluZyBhY3Jvc3MgZmlsZXN5c3RlbXMgKGRlZmF1bHQ6IDgxOTIpCiAqLw=="},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":65,"slug":"type-structure","name":"type_structure","namespace":"Flow\\Types\\DSL","parameters":[{"name":"elements","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"}],"return_type":[{"name":"StructureType","namespace":"Flow\\Types\\Type\\Logical","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEB0ZW1wbGF0ZSBUCiAqCiAqIEBwYXJhbSBhcnJheTxhcnJheS1rZXksIFN0cnVjdHVyZUVsZW1lbnQ8VD58VHlwZTxUPj4gJGVsZW1lbnRzCiAqCiAqIEByZXR1cm4gU3RydWN0dXJlVHlwZTxhcnJheTxhcnJheS1rZXksIFQ+PgogKi8="},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":80,"slug":"structure-element","name":"structure_element","namespace":"Flow\\Types\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"type","type":[{"name":"Type","namespace":"Flow\\Types","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"optional","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"StructureElement","namespace":"Flow\\Types\\Type\\Logical","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEB0ZW1wbGF0ZSBUCiAqIEB0ZW1wbGF0ZSBUT3B0aW9uYWwgb2YgYm9vbAogKgogKiBAcGFyYW0gVHlwZTxUPiAkdHlwZQogKiBAcGFyYW0gVE9wdGlvbmFsICRvcHRpb25hbAogKgogKiBAcmV0dXJuIFN0cnVjdHVyZUVsZW1lbnQ8VCwgVE9wdGlvbmFsPgogKi8="},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":95,"slug":"type-union","name":"type_union","namespace":"Flow\\Types\\DSL","parameters":[{"name":"first","type":[{"name":"Type","namespace":"Flow\\Types","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"second","type":[{"name":"Type","namespace":"Flow\\Types","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"types","type":[{"name":"Type","namespace":"Flow\\Types","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"UnionType","namespace":"Flow\\Types\\Type\\Native","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEB0ZW1wbGF0ZSBUCiAqCiAqIEBwYXJhbSBUeXBlPFQ+ICRmaXJzdAogKiBAcGFyYW0gVHlwZTxUPiAkc2Vjb25kCiAqIEBwYXJhbSBUeXBlPFQ+IC4uLiR0eXBlcwogKgogKiBAcmV0dXJuIFVuaW9uVHlwZTxULCBUPgogKi8="},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":116,"slug":"type-intersection","name":"type_intersection","namespace":"Flow\\Types\\DSL","parameters":[{"name":"first","type":[{"name":"Type","namespace":"Flow\\Types","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"second","type":[{"name":"Type","namespace":"Flow\\Types","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"types","type":[{"name":"Type","namespace":"Flow\\Types","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"IntersectionType","namespace":"Flow\\Types\\Type\\Native","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEB0ZW1wbGF0ZSBUCiAqCiAqIEBwYXJhbSBUeXBlPFQ+ICRmaXJzdAogKiBAcGFyYW0gVHlwZTxUPiAkc2Vjb25kCiAqIEBwYXJhbSBUeXBlPFQ+IC4uLiR0eXBlcwogKgogKiBAcmV0dXJuIEludGVyc2VjdGlvblR5cGU8VCwgVD4KICov"},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":128,"slug":"type-numeric-string","name":"type_numeric_string","namespace":"Flow\\Types\\DSL","parameters":[],"return_type":[{"name":"NumericStringType","namespace":"Flow\\Types\\Type\\Logical","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":141,"slug":"type-optional","name":"type_optional","namespace":"Flow\\Types\\DSL","parameters":[{"name":"type","type":[{"name":"Type","namespace":"Flow\\Types","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"OptionalType","namespace":"Flow\\Types\\Type\\Logical","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEB0ZW1wbGF0ZSBUCiAqCiAqIEBwYXJhbSBUeXBlPFQ+ICR0eXBlCiAqCiAqIEByZXR1cm4gT3B0aW9uYWxUeXBlPFQ+CiAqLw=="},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":152,"slug":"type-from-array","name":"type_from_array","namespace":"Flow\\Types\\DSL","parameters":[{"name":"data","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Type","namespace":"Flow\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheTxzdHJpbmcsIG1peGVkPiAkZGF0YQogKgogKiBAcmV0dXJuIFR5cGU8bWl4ZWQ+CiAqLw=="},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":163,"slug":"type-is-nullable","name":"type_is_nullable","namespace":"Flow\\Types\\DSL","parameters":[{"name":"type","type":[{"name":"Type","namespace":"Flow\\Types","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEB0ZW1wbGF0ZSBUCiAqCiAqIEBwYXJhbSBUeXBlPFQ+ICR0eXBlCiAqLw=="},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":179,"slug":"type-bare","name":"type_bare","namespace":"Flow\\Types\\DSL","parameters":[{"name":"type","type":[{"name":"Type","namespace":"Flow\\Types","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Type","namespace":"Flow\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIFN0cmlwIGV4YWN0bHkgb25lIGxldmVsIG9mIG51bGxhYmlsaXR5LCB3aGljaGV2ZXIgb2YgdGhlIHR3byBzcGVsbGluZ3MgY2FycmllcyBpdAogKiAoT3B0aW9uYWxUeXBlLCBvciBhIFVuaW9uVHlwZSBjb250YWluaW5nIE51bGxUeXBlKS4gVG90YWw6IGEgTk9UIE5VTEwgdHlwZSBpcyByZXR1cm5lZCB1bmNoYW5nZWQuCiAqCiAqIEB0ZW1wbGF0ZSBUCiAqCiAqIEBwYXJhbSBUeXBlPFQ+ICR0eXBlCiAqCiAqIEByZXR1cm4gVHlwZTxtaXhlZD4KICov"},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":189,"slug":"type-equals","name":"type_equals","namespace":"Flow\\Types\\DSL","parameters":[{"name":"left","type":[{"name":"Type","namespace":"Flow\\Types","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"right","type":[{"name":"Type","namespace":"Flow\\Types","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBUeXBlPG1peGVkPiAkbGVmdAogKiBAcGFyYW0gVHlwZTxtaXhlZD4gJHJpZ2h0CiAqLw=="},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":202,"slug":"types","name":"types","namespace":"Flow\\Types\\DSL","parameters":[{"name":"types","type":[{"name":"Type","namespace":"Flow\\Types","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"Types","namespace":"Flow\\Types\\Type","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEB0ZW1wbGF0ZSBUCiAqCiAqIEBwYXJhbSBUeXBlPFQ+IC4uLiR0eXBlcwogKgogKiBAcmV0dXJuIFR5cGVzPFQ+CiAqLw=="},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":215,"slug":"type-list","name":"type_list","namespace":"Flow\\Types\\DSL","parameters":[{"name":"element","type":[{"name":"Type","namespace":"Flow\\Types","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ListType","namespace":"Flow\\Types\\Type\\Logical","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEB0ZW1wbGF0ZSBUCiAqCiAqIEBwYXJhbSBUeXBlPFQ+ICRlbGVtZW50CiAqCiAqIEByZXR1cm4gTGlzdFR5cGU8VD4KICov"},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":230,"slug":"type-map","name":"type_map","namespace":"Flow\\Types\\DSL","parameters":[{"name":"key_type","type":[{"name":"Type","namespace":"Flow\\Types","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"value_type","type":[{"name":"Type","namespace":"Flow\\Types","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"MapType","namespace":"Flow\\Types\\Type\\Logical","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEB0ZW1wbGF0ZSBUS2V5IG9mIGFycmF5LWtleQogKiBAdGVtcGxhdGUgVFZhbHVlCiAqCiAqIEBwYXJhbSBUeXBlPFRLZXk+ICRrZXlfdHlwZQogKiBAcGFyYW0gVHlwZTxUVmFsdWU+ICR2YWx1ZV90eXBlCiAqCiAqIEByZXR1cm4gTWFwVHlwZTxUS2V5LCBUVmFsdWU+CiAqLw=="},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":236,"slug":"type-json","name":"type_json","namespace":"Flow\\Types\\DSL","parameters":[],"return_type":[{"name":"JsonType","namespace":"Flow\\Types\\Type\\Logical","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":242,"slug":"type-datetime","name":"type_datetime","namespace":"Flow\\Types\\DSL","parameters":[{"name":"zone","type":[{"name":"DateTimeZone","namespace":"","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'UTC'"}],"return_type":[{"name":"DateTimeType","namespace":"Flow\\Types\\Type\\Logical","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":248,"slug":"type-date","name":"type_date","namespace":"Flow\\Types\\DSL","parameters":[],"return_type":[{"name":"DateType","namespace":"Flow\\Types\\Type\\Logical","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":254,"slug":"type-time","name":"type_time","namespace":"Flow\\Types\\DSL","parameters":[],"return_type":[{"name":"TimeType","namespace":"Flow\\Types\\Type\\Logical","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":260,"slug":"type-time-zone","name":"type_time_zone","namespace":"Flow\\Types\\DSL","parameters":[],"return_type":[{"name":"TimeZoneType","namespace":"Flow\\Types\\Type\\Logical","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":266,"slug":"type-xml","name":"type_xml","namespace":"Flow\\Types\\DSL","parameters":[],"return_type":[{"name":"XMLType","namespace":"Flow\\Types\\Type\\Logical","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":272,"slug":"type-xml-element","name":"type_xml_element","namespace":"Flow\\Types\\DSL","parameters":[],"return_type":[{"name":"XMLElementType","namespace":"Flow\\Types\\Type\\Logical","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":278,"slug":"type-uuid","name":"type_uuid","namespace":"Flow\\Types\\DSL","parameters":[],"return_type":[{"name":"UuidType","namespace":"Flow\\Types\\Type\\Logical","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":284,"slug":"type-integer","name":"type_integer","namespace":"Flow\\Types\\DSL","parameters":[],"return_type":[{"name":"IntegerType","namespace":"Flow\\Types\\Type\\Native","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":290,"slug":"type-string","name":"type_string","namespace":"Flow\\Types\\DSL","parameters":[],"return_type":[{"name":"StringType","namespace":"Flow\\Types\\Type\\Native","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":296,"slug":"type-float","name":"type_float","namespace":"Flow\\Types\\DSL","parameters":[],"return_type":[{"name":"FloatType","namespace":"Flow\\Types\\Type\\Native","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":302,"slug":"type-boolean","name":"type_boolean","namespace":"Flow\\Types\\DSL","parameters":[],"return_type":[{"name":"BooleanType","namespace":"Flow\\Types\\Type\\Native","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":315,"slug":"type-instance-of","name":"type_instance_of","namespace":"Flow\\Types\\DSL","parameters":[{"name":"class","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"InstanceOfType","namespace":"Flow\\Types\\Type\\Logical","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEB0ZW1wbGF0ZSBUIG9mIG9iamVjdAogKgogKiBAcGFyYW0gY2xhc3Mtc3RyaW5nPFQ+ICRjbGFzcwogKgogKiBAcmV0dXJuIEluc3RhbmNlT2ZUeXBlPFQ+CiAqLw=="},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":321,"slug":"type-object","name":"type_object","namespace":"Flow\\Types\\DSL","parameters":[],"return_type":[{"name":"ObjectType","namespace":"Flow\\Types\\Type\\Native","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":327,"slug":"type-scalar","name":"type_scalar","namespace":"Flow\\Types\\DSL","parameters":[],"return_type":[{"name":"ScalarType","namespace":"Flow\\Types\\Type\\Logical","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":333,"slug":"type-resource","name":"type_resource","namespace":"Flow\\Types\\DSL","parameters":[],"return_type":[{"name":"ResourceType","namespace":"Flow\\Types\\Type\\Native","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":339,"slug":"type-array","name":"type_array","namespace":"Flow\\Types\\DSL","parameters":[],"return_type":[{"name":"ArrayType","namespace":"Flow\\Types\\Type\\Native","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":345,"slug":"type-callable","name":"type_callable","namespace":"Flow\\Types\\DSL","parameters":[],"return_type":[{"name":"CallableType","namespace":"Flow\\Types\\Type\\Native","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":351,"slug":"type-null","name":"type_null","namespace":"Flow\\Types\\DSL","parameters":[],"return_type":[{"name":"NullType","namespace":"Flow\\Types\\Type\\Native","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":357,"slug":"type-mixed","name":"type_mixed","namespace":"Flow\\Types\\DSL","parameters":[],"return_type":[{"name":"MixedType","namespace":"Flow\\Types\\Type\\Native","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":363,"slug":"type-positive-integer","name":"type_positive_integer","namespace":"Flow\\Types\\DSL","parameters":[],"return_type":[{"name":"PositiveIntegerType","namespace":"Flow\\Types\\Type\\Logical","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":369,"slug":"type-non-empty-string","name":"type_non_empty_string","namespace":"Flow\\Types\\DSL","parameters":[],"return_type":[{"name":"NonEmptyStringType","namespace":"Flow\\Types\\Type\\Logical","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":375,"slug":"type-empty-array","name":"type_empty_array","namespace":"Flow\\Types\\DSL","parameters":[],"return_type":[{"name":"EmptyArrayType","namespace":"Flow\\Types\\Type\\Native","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":388,"slug":"type-enum","name":"type_enum","namespace":"Flow\\Types\\DSL","parameters":[{"name":"class","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"EnumType","namespace":"Flow\\Types\\Type\\Native","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEB0ZW1wbGF0ZSBUIG9mIFVuaXRFbnVtCiAqCiAqIEBwYXJhbSBjbGFzcy1zdHJpbmc8VD4gJGNsYXNzCiAqCiAqIEByZXR1cm4gRW51bVR5cGU8VD4KICov"},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":401,"slug":"type-literal","name":"type_literal","namespace":"Flow\\Types\\DSL","parameters":[{"name":"value","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"LiteralType","namespace":"Flow\\Types\\Type\\Logical","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEB0ZW1wbGF0ZSBUIG9mIGJvb2x8ZmxvYXR8aW50fHN0cmluZwogKgogKiBAcGFyYW0gVCAkdmFsdWUKICoKICogQHJldHVybiBMaXRlcmFsVHlwZTxUPgogKi8="},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":407,"slug":"type-html","name":"type_html","namespace":"Flow\\Types\\DSL","parameters":[],"return_type":[{"name":"HTMLType","namespace":"Flow\\Types\\Type\\Logical","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":413,"slug":"type-html-element","name":"type_html_element","namespace":"Flow\\Types\\DSL","parameters":[],"return_type":[{"name":"HTMLElementType","namespace":"Flow\\Types\\Type\\Logical","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":425,"slug":"type-is","name":"type_is","namespace":"Flow\\Types\\DSL","parameters":[{"name":"type","type":[{"name":"Type","namespace":"Flow\\Types","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"typeClass","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEB0ZW1wbGF0ZSBUCiAqCiAqIEBwYXJhbSBUeXBlPFQ+ICR0eXBlCiAqIEBwYXJhbSBjbGFzcy1zdHJpbmc8VHlwZTxtaXhlZD4+ICR0eXBlQ2xhc3MKICov"},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":438,"slug":"type-is-any","name":"type_is_any","namespace":"Flow\\Types\\DSL","parameters":[{"name":"type","type":[{"name":"Type","namespace":"Flow\\Types","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"typeClass","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"typeClasses","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEB0ZW1wbGF0ZSBUCiAqCiAqIEBwYXJhbSBUeXBlPFQ+ICR0eXBlCiAqIEBwYXJhbSBjbGFzcy1zdHJpbmc8VHlwZTxtaXhlZD4+ICR0eXBlQ2xhc3MKICogQHBhcmFtIGNsYXNzLXN0cmluZzxUeXBlPG1peGVkPj4gLi4uJHR5cGVDbGFzc2VzCiAqLw=="},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":447,"slug":"get-type","name":"get_type","namespace":"Flow\\Types\\DSL","parameters":[{"name":"value","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Type","namespace":"Flow\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEByZXR1cm4gVHlwZTxtaXhlZD4KICov"},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":460,"slug":"type-class-string","name":"type_class_string","namespace":"Flow\\Types\\DSL","parameters":[{"name":"class","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"ClassStringType","namespace":"Flow\\Types\\Type\\Logical","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEB0ZW1wbGF0ZSBUIG9mIG9iamVjdAogKgogKiBAcGFyYW0gbnVsbHxjbGFzcy1zdHJpbmc8VD4gJGNsYXNzCiAqCiAqIEByZXR1cm4gKCRjbGFzcyBpcyBudWxsID8gQ2xhc3NTdHJpbmdUeXBlPGNsYXNzLXN0cmluZz4gOiBDbGFzc1N0cmluZ1R5cGU8Y2xhc3Mtc3RyaW5nPFQ+PikKICov"},{"repository_path":"src\/lib\/types\/src\/Flow\/Types\/DSL\/functions.php","start_line_in_file":466,"slug":"dom-element-to-string","name":"dom_element_to_string","namespace":"Flow\\Types\\DSL","parameters":[{"name":"element","type":[{"name":"DOMElement","namespace":"","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"format_output","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"preserver_white_space","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"false","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TYPES","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/parquet\/src\/Flow\/Parquet\/DSL\/functions.php","start_line_in_file":14,"slug":"parquet-column","name":"parquet_column","namespace":"Flow\\Parquet\\DSL","parameters":[{"name":"path","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ColumnRef","namespace":"Flow\\Parquet\\Filter","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PARQUET","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/parquet\/src\/Flow\/Parquet\/DSL\/functions.php","start_line_in_file":20,"slug":"parquet-query","name":"parquet_query","namespace":"Flow\\Parquet\\DSL","parameters":[],"return_type":[{"name":"Query","namespace":"Flow\\Parquet","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PARQUET","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":134,"slug":"column","name":"column","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"type","type":[{"name":"ColumnType","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ColumnDefinition","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIGNvbHVtbiBkZWZpbml0aW9uIGZvciBDUkVBVEUgVEFCTEUuCiAqCiAqIEBwYXJhbSBzdHJpbmcgJG5hbWUgQ29sdW1uIG5hbWUKICogQHBhcmFtIENvbHVtblR5cGUgJHR5cGUgQ29sdW1uIGRhdGEgdHlwZQogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":143,"slug":"catalog","name":"catalog","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"schemas","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Catalog","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBsaXN0PFNjaGVtYT4gJHNjaGVtYXMKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":154,"slug":"primary-key","name":"primary_key","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"columns","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"PrimaryKeyConstraint","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema\\Constraint","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFBSSU1BUlkgS0VZIGNvbnN0cmFpbnQuCiAqCiAqIEBwYXJhbSBzdHJpbmcgLi4uJGNvbHVtbnMgQ29sdW1ucyB0aGF0IGZvcm0gdGhlIHByaW1hcnkga2V5CiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":165,"slug":"unique-constraint","name":"unique_constraint","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"columns","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"UniqueConstraint","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema\\Constraint","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFVOSVFVRSBjb25zdHJhaW50LgogKgogKiBAcGFyYW0gc3RyaW5nIC4uLiRjb2x1bW5zIENvbHVtbnMgdGhhdCBtdXN0IGJlIHVuaXF1ZSB0b2dldGhlcgogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":178,"slug":"foreign-key","name":"foreign_key","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"columns","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"referenceTable","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"referenceColumns","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"}],"return_type":[{"name":"ForeignKeyConstraint","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema\\Constraint","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIEZPUkVJR04gS0VZIGNvbnN0cmFpbnQuCiAqCiAqIEBwYXJhbSBsaXN0PHN0cmluZz4gJGNvbHVtbnMgTG9jYWwgY29sdW1ucwogKiBAcGFyYW0gc3RyaW5nICRyZWZlcmVuY2VUYWJsZSBSZWZlcmVuY2VkIHRhYmxlCiAqIEBwYXJhbSBsaXN0PHN0cmluZz4gJHJlZmVyZW5jZUNvbHVtbnMgUmVmZXJlbmNlZCBjb2x1bW5zIChkZWZhdWx0cyB0byBzYW1lIGFzICRjb2x1bW5zIGlmIGVtcHR5KQogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":187,"slug":"check-constraint","name":"check_constraint","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"condition","type":[{"name":"Condition","namespace":"Flow\\PostgreSql\\QueryBuilder\\Condition","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"CheckConstraint","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema\\Constraint","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIENIRUNLIGNvbnN0cmFpbnQuCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":218,"slug":"create","name":"create","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"CreateFactory","namespace":"Flow\\PostgreSql\\QueryBuilder\\Factory","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"SCHEMA"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIGZhY3RvcnkgZm9yIGJ1aWxkaW5nIENSRUFURSBzdGF0ZW1lbnRzLgogKgogKiBQcm92aWRlcyBhIHVuaWZpZWQgZW50cnkgcG9pbnQgZm9yIGFsbCBDUkVBVEUgb3BlcmF0aW9uczoKICogLSBjcmVhdGUoKS0+dGFibGUoKSAtIENSRUFURSBUQUJMRQogKiAtIGNyZWF0ZSgpLT50YWJsZUFzKCkgLSBDUkVBVEUgVEFCTEUgQVMKICogLSBjcmVhdGUoKS0+aW5kZXgoKSAtIENSRUFURSBJTkRFWAogKiAtIGNyZWF0ZSgpLT52aWV3KCkgLSBDUkVBVEUgVklFVwogKiAtIGNyZWF0ZSgpLT5tYXRlcmlhbGl6ZWRWaWV3KCkgLSBDUkVBVEUgTUFURVJJQUxJWkVEIFZJRVcKICogLSBjcmVhdGUoKS0+c2VxdWVuY2UoKSAtIENSRUFURSBTRVFVRU5DRQogKiAtIGNyZWF0ZSgpLT5zY2hlbWEoKSAtIENSRUFURSBTQ0hFTUEKICogLSBjcmVhdGUoKS0+cm9sZSgpIC0gQ1JFQVRFIFJPTEUKICogLSBjcmVhdGUoKS0+ZnVuY3Rpb24oKSAtIENSRUFURSBGVU5DVElPTgogKiAtIGNyZWF0ZSgpLT5wcm9jZWR1cmUoKSAtIENSRUFURSBQUk9DRURVUkUKICogLSBjcmVhdGUoKS0+dHJpZ2dlcigpIC0gQ1JFQVRFIFRSSUdHRVIKICogLSBjcmVhdGUoKS0+cnVsZSgpIC0gQ1JFQVRFIFJVTEUKICogLSBjcmVhdGUoKS0+ZXh0ZW5zaW9uKCkgLSBDUkVBVEUgRVhURU5TSU9OCiAqIC0gY3JlYXRlKCktPmNvbXBvc2l0ZVR5cGUoKSAtIENSRUFURSBUWVBFIChjb21wb3NpdGUpCiAqIC0gY3JlYXRlKCktPmVudW1UeXBlKCkgLSBDUkVBVEUgVFlQRSAoZW51bSkKICogLSBjcmVhdGUoKS0+cmFuZ2VUeXBlKCkgLSBDUkVBVEUgVFlQRSAocmFuZ2UpCiAqIC0gY3JlYXRlKCktPmRvbWFpbigpIC0gQ1JFQVRFIERPTUFJTgogKgogKiBFeGFtcGxlOiBjcmVhdGUoKS0+dGFibGUoJ3VzZXJzJyktPmNvbHVtbnMoY29sX2RlZignaWQnLCBjb2x1bW5fdHlwZV9zZXJpYWwoKSkpCiAqIEV4YW1wbGU6IGNyZWF0ZSgpLT5pbmRleCgnaWR4X2VtYWlsJyktPm9uKCd1c2VycycpLT5jb2x1bW5zKCdlbWFpbCcpCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":247,"slug":"drop","name":"drop","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"DropFactory","namespace":"Flow\\PostgreSql\\QueryBuilder\\Factory","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"SCHEMA"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIGZhY3RvcnkgZm9yIGJ1aWxkaW5nIERST1Agc3RhdGVtZW50cy4KICoKICogUHJvdmlkZXMgYSB1bmlmaWVkIGVudHJ5IHBvaW50IGZvciBhbGwgRFJPUCBvcGVyYXRpb25zOgogKiAtIGRyb3AoKS0+dGFibGUoKSAtIERST1AgVEFCTEUKICogLSBkcm9wKCktPmluZGV4KCkgLSBEUk9QIElOREVYCiAqIC0gZHJvcCgpLT52aWV3KCkgLSBEUk9QIFZJRVcKICogLSBkcm9wKCktPm1hdGVyaWFsaXplZFZpZXcoKSAtIERST1AgTUFURVJJQUxJWkVEIFZJRVcKICogLSBkcm9wKCktPnNlcXVlbmNlKCkgLSBEUk9QIFNFUVVFTkNFCiAqIC0gZHJvcCgpLT5zY2hlbWEoKSAtIERST1AgU0NIRU1BCiAqIC0gZHJvcCgpLT5yb2xlKCkgLSBEUk9QIFJPTEUKICogLSBkcm9wKCktPmZ1bmN0aW9uKCkgLSBEUk9QIEZVTkNUSU9OCiAqIC0gZHJvcCgpLT5wcm9jZWR1cmUoKSAtIERST1AgUFJPQ0VEVVJFCiAqIC0gZHJvcCgpLT50cmlnZ2VyKCkgLSBEUk9QIFRSSUdHRVIKICogLSBkcm9wKCktPnJ1bGUoKSAtIERST1AgUlVMRQogKiAtIGRyb3AoKS0+ZXh0ZW5zaW9uKCkgLSBEUk9QIEVYVEVOU0lPTgogKiAtIGRyb3AoKS0+dHlwZSgpIC0gRFJPUCBUWVBFCiAqIC0gZHJvcCgpLT5kb21haW4oKSAtIERST1AgRE9NQUlOCiAqIC0gZHJvcCgpLT5vd25lZCgpIC0gRFJPUCBPV05FRAogKgogKiBFeGFtcGxlOiBkcm9wKCktPnRhYmxlKCd1c2VycycsICdvcmRlcnMnKS0+aWZFeGlzdHMoKS0+Y2FzY2FkZSgpCiAqIEV4YW1wbGU6IGRyb3AoKS0+aW5kZXgoJ2lkeF9lbWFpbCcpLT5pZkV4aXN0cygpCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":281,"slug":"alter","name":"alter","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"AlterFactory","namespace":"Flow\\PostgreSql\\QueryBuilder\\Factory","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"SCHEMA"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIGZhY3RvcnkgZm9yIGJ1aWxkaW5nIEFMVEVSIHN0YXRlbWVudHMuCiAqCiAqIFByb3ZpZGVzIGEgdW5pZmllZCBlbnRyeSBwb2ludCBmb3IgYWxsIEFMVEVSIG9wZXJhdGlvbnM6CiAqIC0gYWx0ZXIoKS0+dGFibGUoKSAtIEFMVEVSIFRBQkxFCiAqIC0gYWx0ZXIoKS0+aW5kZXgoKSAtIEFMVEVSIElOREVYCiAqIC0gYWx0ZXIoKS0+dmlldygpIC0gQUxURVIgVklFVwogKiAtIGFsdGVyKCktPm1hdGVyaWFsaXplZFZpZXcoKSAtIEFMVEVSIE1BVEVSSUFMSVpFRCBWSUVXCiAqIC0gYWx0ZXIoKS0+c2VxdWVuY2UoKSAtIEFMVEVSIFNFUVVFTkNFCiAqIC0gYWx0ZXIoKS0+c2NoZW1hKCkgLSBBTFRFUiBTQ0hFTUEKICogLSBhbHRlcigpLT5yb2xlKCkgLSBBTFRFUiBST0xFCiAqIC0gYWx0ZXIoKS0+ZnVuY3Rpb24oKSAtIEFMVEVSIEZVTkNUSU9OCiAqIC0gYWx0ZXIoKS0+cHJvY2VkdXJlKCkgLSBBTFRFUiBQUk9DRURVUkUKICogLSBhbHRlcigpLT50cmlnZ2VyKCkgLSBBTFRFUiBUUklHR0VSCiAqIC0gYWx0ZXIoKS0+ZXh0ZW5zaW9uKCkgLSBBTFRFUiBFWFRFTlNJT04KICogLSBhbHRlcigpLT5lbnVtVHlwZSgpIC0gQUxURVIgVFlQRSAoZW51bSkKICogLSBhbHRlcigpLT5kb21haW4oKSAtIEFMVEVSIERPTUFJTgogKgogKiBSZW5hbWUgb3BlcmF0aW9ucyBhcmUgYWxzbyB1bmRlciBhbHRlcigpOgogKiAtIGFsdGVyKCktPmluZGV4KCdvbGQnKS0+cmVuYW1lVG8oJ25ldycpCiAqIC0gYWx0ZXIoKS0+dmlldygnb2xkJyktPnJlbmFtZVRvKCduZXcnKQogKiAtIGFsdGVyKCktPnNjaGVtYSgnb2xkJyktPnJlbmFtZVRvKCduZXcnKQogKiAtIGFsdGVyKCktPnJvbGUoJ29sZCcpLT5yZW5hbWVUbygnbmV3JykKICogLSBhbHRlcigpLT50cmlnZ2VyKCdvbGQnKS0+b24oJ3RhYmxlJyktPnJlbmFtZVRvKCduZXcnKQogKgogKiBFeGFtcGxlOiBhbHRlcigpLT50YWJsZSgndXNlcnMnKS0+YWRkQ29sdW1uKGNvbF9kZWYoJ2VtYWlsJywgY29sdW1uX3R5cGVfdGV4dCgpKSkKICogRXhhbXBsZTogYWx0ZXIoKS0+c2VxdWVuY2UoJ3VzZXJfaWRfc2VxJyktPnJlc3RhcnQoMTAwMCkKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":292,"slug":"truncate-table","name":"truncate_table","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"tables","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"TruncateFinalStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema\\Truncate","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFRSVU5DQVRFIFRBQkxFIGJ1aWxkZXIuCiAqCiAqIEBwYXJhbSBzdHJpbmcgLi4uJHRhYmxlcyBUYWJsZSBuYW1lcyB0byB0cnVuY2F0ZQogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":310,"slug":"refresh-materialized-view","name":"refresh_materialized_view","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"schema","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"RefreshMatViewOptionsStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema\\View\\RefreshMaterializedView","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"SCHEMA"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFJFRlJFU0ggTUFURVJJQUxJWkVEIFZJRVcgYnVpbGRlci4KICoKICogRXhhbXBsZTogcmVmcmVzaF9tYXRlcmlhbGl6ZWRfdmlldygndXNlcl9zdGF0cycpCiAqIFByb2R1Y2VzOiBSRUZSRVNIIE1BVEVSSUFMSVpFRCBWSUVXIHVzZXJfc3RhdHMKICoKICogRXhhbXBsZTogcmVmcmVzaF9tYXRlcmlhbGl6ZWRfdmlldygndXNlcl9zdGF0cycpLT5jb25jdXJyZW50bHkoKS0+d2l0aERhdGEoKQogKiBQcm9kdWNlczogUkVGUkVTSCBNQVRFUklBTElaRUQgVklFVyBDT05DVVJSRU5UTFkgdXNlcl9zdGF0cyBXSVRIIERBVEEKICoKICogQHBhcmFtIHN0cmluZyAkbmFtZSBWaWV3IG5hbWUgKG1heSBpbmNsdWRlIHNjaGVtYSBhcyAic2NoZW1hLnZpZXciKQogKiBAcGFyYW0gbnVsbHxzdHJpbmcgJHNjaGVtYSBTY2hlbWEgbmFtZSAob3B0aW9uYWwsIG92ZXJyaWRlcyBwYXJzZWQgc2NoZW1hKQogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":319,"slug":"ref-action-cascade","name":"ref_action_cascade","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ReferentialAction","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEdldCBhIENBU0NBREUgcmVmZXJlbnRpYWwgYWN0aW9uLgogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":328,"slug":"ref-action-restrict","name":"ref_action_restrict","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ReferentialAction","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEdldCBhIFJFU1RSSUNUIHJlZmVyZW50aWFsIGFjdGlvbi4KICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":337,"slug":"ref-action-set-null","name":"ref_action_set_null","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ReferentialAction","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEdldCBhIFNFVCBOVUxMIHJlZmVyZW50aWFsIGFjdGlvbi4KICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":346,"slug":"ref-action-set-default","name":"ref_action_set_default","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ReferentialAction","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEdldCBhIFNFVCBERUZBVUxUIHJlZmVyZW50aWFsIGFjdGlvbi4KICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":355,"slug":"ref-action-no-action","name":"ref_action_no_action","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ReferentialAction","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEdldCBhIE5PIEFDVElPTiByZWZlcmVudGlhbCBhY3Rpb24uCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":370,"slug":"reindex-index","name":"reindex_index","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ReindexFinalStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema\\Index\\Reindex","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"SCHEMA"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIFN0YXJ0IGJ1aWxkaW5nIGEgUkVJTkRFWCBJTkRFWCBzdGF0ZW1lbnQuCiAqCiAqIFVzZSBjaGFpbmFibGUgbWV0aG9kczogLT5jb25jdXJyZW50bHkoKSwgLT52ZXJib3NlKCksIC0+dGFibGVzcGFjZSgpCiAqCiAqIEV4YW1wbGU6IHJlaW5kZXhfaW5kZXgoJ2lkeF91c2Vyc19lbWFpbCcpLT5jb25jdXJyZW50bHkoKQogKgogKiBAcGFyYW0gc3RyaW5nICRuYW1lIFRoZSBpbmRleCBuYW1lIChtYXkgaW5jbHVkZSBzY2hlbWE6IHNjaGVtYS5pbmRleCkKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":385,"slug":"reindex-table","name":"reindex_table","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ReindexFinalStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema\\Index\\Reindex","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"SCHEMA"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIFN0YXJ0IGJ1aWxkaW5nIGEgUkVJTkRFWCBUQUJMRSBzdGF0ZW1lbnQuCiAqCiAqIFVzZSBjaGFpbmFibGUgbWV0aG9kczogLT5jb25jdXJyZW50bHkoKSwgLT52ZXJib3NlKCksIC0+dGFibGVzcGFjZSgpCiAqCiAqIEV4YW1wbGU6IHJlaW5kZXhfdGFibGUoJ3VzZXJzJyktPmNvbmN1cnJlbnRseSgpCiAqCiAqIEBwYXJhbSBzdHJpbmcgJG5hbWUgVGhlIHRhYmxlIG5hbWUgKG1heSBpbmNsdWRlIHNjaGVtYTogc2NoZW1hLnRhYmxlKQogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":400,"slug":"reindex-schema","name":"reindex_schema","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ReindexFinalStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema\\Index\\Reindex","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"SCHEMA"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIFN0YXJ0IGJ1aWxkaW5nIGEgUkVJTkRFWCBTQ0hFTUEgc3RhdGVtZW50LgogKgogKiBVc2UgY2hhaW5hYmxlIG1ldGhvZHM6IC0+Y29uY3VycmVudGx5KCksIC0+dmVyYm9zZSgpLCAtPnRhYmxlc3BhY2UoKQogKgogKiBFeGFtcGxlOiByZWluZGV4X3NjaGVtYSgncHVibGljJyktPmNvbmN1cnJlbnRseSgpCiAqCiAqIEBwYXJhbSBzdHJpbmcgJG5hbWUgVGhlIHNjaGVtYSBuYW1lCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":415,"slug":"reindex-database","name":"reindex_database","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ReindexFinalStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema\\Index\\Reindex","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"SCHEMA"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIFN0YXJ0IGJ1aWxkaW5nIGEgUkVJTkRFWCBEQVRBQkFTRSBzdGF0ZW1lbnQuCiAqCiAqIFVzZSBjaGFpbmFibGUgbWV0aG9kczogLT5jb25jdXJyZW50bHkoKSwgLT52ZXJib3NlKCksIC0+dGFibGVzcGFjZSgpCiAqCiAqIEV4YW1wbGU6IHJlaW5kZXhfZGF0YWJhc2UoJ215ZGInKS0+Y29uY3VycmVudGx5KCkKICoKICogQHBhcmFtIHN0cmluZyAkbmFtZSBUaGUgZGF0YWJhc2UgbmFtZQogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":430,"slug":"index-col","name":"index_col","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"IndexColumn","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema\\Index","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"SCHEMA"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBpbmRleCBjb2x1bW4gc3BlY2lmaWNhdGlvbi4KICoKICogVXNlIGNoYWluYWJsZSBtZXRob2RzOiAtPmFzYygpLCAtPmRlc2MoKSwgLT5udWxsc0ZpcnN0KCksIC0+bnVsbHNMYXN0KCksIC0+b3BjbGFzcygpLCAtPmNvbGxhdGUoKQogKgogKiBFeGFtcGxlOiBpbmRleF9jb2woJ2VtYWlsJyktPmRlc2MoKS0+bnVsbHNMYXN0KCkKICoKICogQHBhcmFtIHN0cmluZyAkbmFtZSBUaGUgY29sdW1uIG5hbWUKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":445,"slug":"index-expr","name":"index_expr","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"expression","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"IndexColumn","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema\\Index","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"SCHEMA"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBpbmRleCBjb2x1bW4gc3BlY2lmaWNhdGlvbiBmcm9tIGFuIGV4cHJlc3Npb24uCiAqCiAqIFVzZSBjaGFpbmFibGUgbWV0aG9kczogLT5hc2MoKSwgLT5kZXNjKCksIC0+bnVsbHNGaXJzdCgpLCAtPm51bGxzTGFzdCgpLCAtPm9wY2xhc3MoKSwgLT5jb2xsYXRlKCkKICoKICogRXhhbXBsZTogaW5kZXhfZXhwcihmbl9jYWxsKCdsb3dlcicsIGNvbCgnZW1haWwnKSkpLT5kZXNjKCkKICoKICogQHBhcmFtIEV4cHJlc3Npb24gJGV4cHJlc3Npb24gVGhlIGV4cHJlc3Npb24gdG8gaW5kZXgKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":454,"slug":"index-method-btree","name":"index_method_btree","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"IndexMethod","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema\\Index","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEdldCB0aGUgQlRSRUUgaW5kZXggbWV0aG9kLgogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":463,"slug":"index-method-hash","name":"index_method_hash","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"IndexMethod","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema\\Index","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEdldCB0aGUgSEFTSCBpbmRleCBtZXRob2QuCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":472,"slug":"index-method-gist","name":"index_method_gist","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"IndexMethod","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema\\Index","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEdldCB0aGUgR0lTVCBpbmRleCBtZXRob2QuCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":481,"slug":"index-method-spgist","name":"index_method_spgist","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"IndexMethod","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema\\Index","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEdldCB0aGUgU1BHSVNUIGluZGV4IG1ldGhvZC4KICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":490,"slug":"index-method-gin","name":"index_method_gin","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"IndexMethod","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema\\Index","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEdldCB0aGUgR0lOIGluZGV4IG1ldGhvZC4KICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":499,"slug":"index-method-brin","name":"index_method_brin","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"IndexMethod","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema\\Index","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEdldCB0aGUgQlJJTiBpbmRleCBtZXRob2QuCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":511,"slug":"vacuum","name":"vacuum","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"VacuumFinalStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Utility","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFZBQ1VVTSBidWlsZGVyLgogKgogKiBFeGFtcGxlOiB2YWN1dW0oKS0+dGFibGUoJ3VzZXJzJykKICogUHJvZHVjZXM6IFZBQ1VVTSB1c2VycwogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":523,"slug":"analyze","name":"analyze","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"AnalyzeFinalStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Utility","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBBTkFMWVpFIGJ1aWxkZXIuCiAqCiAqIEV4YW1wbGU6IGFuYWx5emUoKS0+dGFibGUoJ3VzZXJzJykKICogUHJvZHVjZXM6IEFOQUxZWkUgdXNlcnMKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":537,"slug":"explain","name":"explain","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"query","type":[{"name":"SelectFinalStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Select","is_nullable":false,"is_variadic":false},{"name":"InsertBuilder","namespace":"Flow\\PostgreSql\\QueryBuilder\\Insert","is_nullable":false,"is_variadic":false},{"name":"UpdateBuilder","namespace":"Flow\\PostgreSql\\QueryBuilder\\Update","is_nullable":false,"is_variadic":false},{"name":"DeleteBuilder","namespace":"Flow\\PostgreSql\\QueryBuilder\\Delete","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ExplainFinalStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Utility","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBFWFBMQUlOIGJ1aWxkZXIgZm9yIGEgcXVlcnkuCiAqCiAqIEV4YW1wbGU6IGV4cGxhaW4oc2VsZWN0KCktPmZyb20oJ3VzZXJzJykpCiAqIFByb2R1Y2VzOiBFWFBMQUlOIFNFTEVDVCAqIEZST00gdXNlcnMKICoKICogQHBhcmFtIERlbGV0ZUJ1aWxkZXJ8SW5zZXJ0QnVpbGRlcnxTZWxlY3RGaW5hbFN0ZXB8VXBkYXRlQnVpbGRlciAkcXVlcnkgUXVlcnkgdG8gZXhwbGFpbgogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":549,"slug":"lock-table","name":"lock_table","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"tables","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"LockFinalStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Utility","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIExPQ0sgVEFCTEUgYnVpbGRlci4KICoKICogRXhhbXBsZTogbG9ja190YWJsZSgndXNlcnMnLCAnb3JkZXJzJyktPmFjY2Vzc0V4Y2x1c2l2ZSgpCiAqIFByb2R1Y2VzOiBMT0NLIFRBQkxFIHVzZXJzLCBvcmRlcnMgSU4gQUNDRVNTIEVYQ0xVU0lWRSBNT0RFCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":564,"slug":"comment","name":"comment","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"target","type":[{"name":"CommentTarget","namespace":"Flow\\PostgreSql\\QueryBuilder\\Utility","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"CommentFinalStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Utility","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIENPTU1FTlQgT04gYnVpbGRlci4KICoKICogRXhhbXBsZTogY29tbWVudChDb21tZW50VGFyZ2V0OjpUQUJMRSwgJ3VzZXJzJyktPmlzKCdVc2VyIGFjY291bnRzIHRhYmxlJykKICogUHJvZHVjZXM6IENPTU1FTlQgT04gVEFCTEUgdXNlcnMgSVMgJ1VzZXIgYWNjb3VudHMgdGFibGUnCiAqCiAqIEBwYXJhbSBDb21tZW50VGFyZ2V0ICR0YXJnZXQgVGFyZ2V0IHR5cGUgKFRBQkxFLCBDT0xVTU4sIElOREVYLCBldGMuKQogKiBAcGFyYW0gc3RyaW5nICRuYW1lIFRhcmdldCBuYW1lICh1c2UgJ3RhYmxlLmNvbHVtbicgZm9yIENPTFVNTiB0YXJnZXRzKQogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":576,"slug":"cluster","name":"cluster","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ClusterFinalStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Utility","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIENMVVNURVIgYnVpbGRlci4KICoKICogRXhhbXBsZTogY2x1c3RlcigpLT50YWJsZSgndXNlcnMnKS0+dXNpbmcoJ2lkeF91c2Vyc19wa2V5JykKICogUHJvZHVjZXM6IENMVVNURVIgdXNlcnMgVVNJTkcgaWR4X3VzZXJzX3BrZXkKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":590,"slug":"discard","name":"discard","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"type","type":[{"name":"DiscardType","namespace":"Flow\\PostgreSql\\QueryBuilder\\Utility","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"DiscardFinalStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Utility","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIERJU0NBUkQgYnVpbGRlci4KICoKICogRXhhbXBsZTogZGlzY2FyZChEaXNjYXJkVHlwZTo6QUxMKQogKiBQcm9kdWNlczogRElTQ0FSRCBBTEwKICoKICogQHBhcmFtIERpc2NhcmRUeXBlICR0eXBlIFR5cGUgb2YgcmVzb3VyY2VzIHRvIGRpc2NhcmQgKEFMTCwgUExBTlMsIFNFUVVFTkNFUywgVEVNUCkKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":609,"slug":"grant","name":"grant","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"privileges","type":[{"name":"TablePrivilege","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema\\Grant","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"GrantOnStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema\\Grant","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIEdSQU5UIHByaXZpbGVnZXMgYnVpbGRlci4KICoKICogRXhhbXBsZTogZ3JhbnQoVGFibGVQcml2aWxlZ2U6OlNFTEVDVCktPm9uVGFibGUoJ3VzZXJzJyktPnRvKCdhcHBfdXNlcicpCiAqIFByb2R1Y2VzOiBHUkFOVCBTRUxFQ1QgT04gdXNlcnMgVE8gYXBwX3VzZXIKICoKICogRXhhbXBsZTogZ3JhbnQoVGFibGVQcml2aWxlZ2U6OkFMTCktPm9uQWxsVGFibGVzSW5TY2hlbWEoJ3B1YmxpYycpLT50bygnYWRtaW4nKQogKiBQcm9kdWNlczogR1JBTlQgQUxMIE9OIEFMTCBUQUJMRVMgSU4gU0NIRU1BIHB1YmxpYyBUTyBhZG1pbgogKgogKiBAcGFyYW0gc3RyaW5nfFRhYmxlUHJpdmlsZWdlIC4uLiRwcml2aWxlZ2VzIFRoZSBwcml2aWxlZ2VzIHRvIGdyYW50CiAqCiAqIEByZXR1cm4gR3JhbnRPblN0ZXAgQnVpbGRlciBmb3IgZ3JhbnQgb3B0aW9ucwogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":628,"slug":"grant-role","name":"grant_role","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"roles","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"GrantRoleToStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema\\Grant","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIEdSQU5UIHJvbGUgYnVpbGRlci4KICoKICogRXhhbXBsZTogZ3JhbnRfcm9sZSgnYWRtaW4nKS0+dG8oJ3VzZXIxJykKICogUHJvZHVjZXM6IEdSQU5UIGFkbWluIFRPIHVzZXIxCiAqCiAqIEV4YW1wbGU6IGdyYW50X3JvbGUoJ2FkbWluJywgJ2RldmVsb3BlcicpLT50bygndXNlcjEnKS0+d2l0aEFkbWluT3B0aW9uKCkKICogUHJvZHVjZXM6IEdSQU5UIGFkbWluLCBkZXZlbG9wZXIgVE8gdXNlcjEgV0lUSCBBRE1JTiBPUFRJT04KICoKICogQHBhcmFtIHN0cmluZyAuLi4kcm9sZXMgVGhlIHJvbGVzIHRvIGdyYW50CiAqCiAqIEByZXR1cm4gR3JhbnRSb2xlVG9TdGVwIEJ1aWxkZXIgZm9yIGdyYW50IHJvbGUgb3B0aW9ucwogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":647,"slug":"revoke","name":"revoke","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"privileges","type":[{"name":"TablePrivilege","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema\\Grant","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"RevokeOnStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema\\Grant","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFJFVk9LRSBwcml2aWxlZ2VzIGJ1aWxkZXIuCiAqCiAqIEV4YW1wbGU6IHJldm9rZShUYWJsZVByaXZpbGVnZTo6U0VMRUNUKS0+b25UYWJsZSgndXNlcnMnKS0+ZnJvbSgnYXBwX3VzZXInKQogKiBQcm9kdWNlczogUkVWT0tFIFNFTEVDVCBPTiB1c2VycyBGUk9NIGFwcF91c2VyCiAqCiAqIEV4YW1wbGU6IHJldm9rZShUYWJsZVByaXZpbGVnZTo6QUxMKS0+b25UYWJsZSgndXNlcnMnKS0+ZnJvbSgnYXBwX3VzZXInKS0+Y2FzY2FkZSgpCiAqIFByb2R1Y2VzOiBSRVZPS0UgQUxMIE9OIHVzZXJzIEZST00gYXBwX3VzZXIgQ0FTQ0FERQogKgogKiBAcGFyYW0gc3RyaW5nfFRhYmxlUHJpdmlsZWdlIC4uLiRwcml2aWxlZ2VzIFRoZSBwcml2aWxlZ2VzIHRvIHJldm9rZQogKgogKiBAcmV0dXJuIFJldm9rZU9uU3RlcCBCdWlsZGVyIGZvciByZXZva2Ugb3B0aW9ucwogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":666,"slug":"revoke-role","name":"revoke_role","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"roles","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"RevokeRoleFromStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema\\Grant","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFJFVk9LRSByb2xlIGJ1aWxkZXIuCiAqCiAqIEV4YW1wbGU6IHJldm9rZV9yb2xlKCdhZG1pbicpLT5mcm9tKCd1c2VyMScpCiAqIFByb2R1Y2VzOiBSRVZPS0UgYWRtaW4gRlJPTSB1c2VyMQogKgogKiBFeGFtcGxlOiByZXZva2Vfcm9sZSgnYWRtaW4nKS0+ZnJvbSgndXNlcjEnKS0+Y2FzY2FkZSgpCiAqIFByb2R1Y2VzOiBSRVZPS0UgYWRtaW4gRlJPTSB1c2VyMSBDQVNDQURFCiAqCiAqIEBwYXJhbSBzdHJpbmcgLi4uJHJvbGVzIFRoZSByb2xlcyB0byByZXZva2UKICoKICogQHJldHVybiBSZXZva2VSb2xlRnJvbVN0ZXAgQnVpbGRlciBmb3IgcmV2b2tlIHJvbGUgb3B0aW9ucwogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":682,"slug":"set-role","name":"set_role","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"role","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"SetRoleFinalStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema\\Session","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFNFVCBST0xFIGJ1aWxkZXIuCiAqCiAqIEV4YW1wbGU6IHNldF9yb2xlKCdhZG1pbicpCiAqIFByb2R1Y2VzOiBTRVQgUk9MRSBhZG1pbgogKgogKiBAcGFyYW0gc3RyaW5nICRyb2xlIFRoZSByb2xlIHRvIHNldAogKgogKiBAcmV0dXJuIFNldFJvbGVGaW5hbFN0ZXAgQnVpbGRlciBmb3Igc2V0IHJvbGUKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":696,"slug":"reset-role","name":"reset_role","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ResetRoleFinalStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema\\Session","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFJFU0VUIFJPTEUgYnVpbGRlci4KICoKICogRXhhbXBsZTogcmVzZXRfcm9sZSgpCiAqIFByb2R1Y2VzOiBSRVNFVCBST0xFCiAqCiAqIEByZXR1cm4gUmVzZXRSb2xlRmluYWxTdGVwIEJ1aWxkZXIgZm9yIHJlc2V0IHJvbGUKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":712,"slug":"reassign-owned","name":"reassign_owned","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"roles","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"ReassignOwnedToStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema\\Ownership","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFJFQVNTSUdOIE9XTkVEIGJ1aWxkZXIuCiAqCiAqIEV4YW1wbGU6IHJlYXNzaWduX293bmVkKCdvbGRfcm9sZScpLT50bygnbmV3X3JvbGUnKQogKiBQcm9kdWNlczogUkVBU1NJR04gT1dORUQgQlkgb2xkX3JvbGUgVE8gbmV3X3JvbGUKICoKICogQHBhcmFtIHN0cmluZyAuLi4kcm9sZXMgVGhlIHJvbGVzIHdob3NlIG93bmVkIG9iamVjdHMgc2hvdWxkIGJlIHJlYXNzaWduZWQKICoKICogQHJldHVybiBSZWFzc2lnbk93bmVkVG9TdGVwIEJ1aWxkZXIgZm9yIHJlYXNzaWduIG93bmVkIG9wdGlvbnMKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":731,"slug":"drop-owned","name":"drop_owned","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"roles","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"DropOwnedFinalStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema\\Ownership","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIERST1AgT1dORUQgYnVpbGRlci4KICoKICogRXhhbXBsZTogZHJvcF9vd25lZCgncm9sZTEnKQogKiBQcm9kdWNlczogRFJPUCBPV05FRCBCWSByb2xlMQogKgogKiBFeGFtcGxlOiBkcm9wX293bmVkKCdyb2xlMScsICdyb2xlMicpLT5jYXNjYWRlKCkKICogUHJvZHVjZXM6IERST1AgT1dORUQgQlkgcm9sZTEsIHJvbGUyIENBU0NBREUKICoKICogQHBhcmFtIHN0cmluZyAuLi4kcm9sZXMgVGhlIHJvbGVzIHdob3NlIG93bmVkIG9iamVjdHMgc2hvdWxkIGJlIGRyb3BwZWQKICoKICogQHJldHVybiBEcm9wT3duZWRGaW5hbFN0ZXAgQnVpbGRlciBmb3IgZHJvcCBvd25lZCBvcHRpb25zCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":749,"slug":"func-arg","name":"func_arg","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"type","type":[{"name":"ColumnType","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"FunctionArgument","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZXMgYSBuZXcgZnVuY3Rpb24gYXJndW1lbnQgZm9yIHVzZSBpbiBmdW5jdGlvbi9wcm9jZWR1cmUgZGVmaW5pdGlvbnMuCiAqCiAqIEV4YW1wbGU6IGZ1bmNfYXJnKGNvbHVtbl90eXBlX2ludGVnZXIoKSkKICogRXhhbXBsZTogZnVuY19hcmcoY29sdW1uX3R5cGVfdGV4dCgpKS0+bmFtZWQoJ3VzZXJuYW1lJykKICogRXhhbXBsZTogZnVuY19hcmcoY29sdW1uX3R5cGVfaW50ZWdlcigpKS0+bmFtZWQoJ2NvdW50JyktPmRlZmF1bHQoJzAnKQogKiBFeGFtcGxlOiBmdW5jX2FyZyhjb2x1bW5fdHlwZV90ZXh0KCkpLT5vdXQoKQogKgogKiBAcGFyYW0gQ29sdW1uVHlwZSAkdHlwZSBUaGUgUG9zdGdyZVNRTCBkYXRhIHR5cGUgZm9yIHRoZSBhcmd1bWVudAogKgogKiBAcmV0dXJuIEZ1bmN0aW9uQXJndW1lbnQgQnVpbGRlciBmb3IgZnVuY3Rpb24gYXJndW1lbnQgb3B0aW9ucwogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":768,"slug":"call","name":"call","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"procedure","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"CallFinalStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZXMgYSBDQUxMIHN0YXRlbWVudCBidWlsZGVyIGZvciBpbnZva2luZyBhIHByb2NlZHVyZS4KICoKICogRXhhbXBsZTogY2FsbCgndXBkYXRlX3N0YXRzJyktPndpdGgoMTIzKQogKiBQcm9kdWNlczogQ0FMTCB1cGRhdGVfc3RhdHMoMTIzKQogKgogKiBFeGFtcGxlOiBjYWxsKCdwcm9jZXNzX2RhdGEnKS0+d2l0aCgndGVzdCcsIDQyLCB0cnVlKQogKiBQcm9kdWNlczogQ0FMTCBwcm9jZXNzX2RhdGEoJ3Rlc3QnLCA0MiwgdHJ1ZSkKICoKICogQHBhcmFtIHN0cmluZyAkcHJvY2VkdXJlIFRoZSBuYW1lIG9mIHRoZSBwcm9jZWR1cmUgdG8gY2FsbAogKgogKiBAcmV0dXJuIENhbGxGaW5hbFN0ZXAgQnVpbGRlciBmb3IgY2FsbCBzdGF0ZW1lbnQgb3B0aW9ucwogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":787,"slug":"do-block","name":"do_block","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"code","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"DoFinalStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema\\Function","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZXMgYSBETyBzdGF0ZW1lbnQgYnVpbGRlciBmb3IgZXhlY3V0aW5nIGFuIGFub255bW91cyBjb2RlIGJsb2NrLgogKgogKiBFeGFtcGxlOiBkb19ibG9jaygnQkVHSU4gUkFJU0UgTk9USUNFICQkSGVsbG8gV29ybGQkJDsgRU5EOycpCiAqIFByb2R1Y2VzOiBETyAkJCBCRUdJTiBSQUlTRSBOT1RJQ0UgJCRIZWxsbyBXb3JsZCQkOyBFTkQ7ICQkIExBTkdVQUdFIHBscGdzcWwKICoKICogRXhhbXBsZTogZG9fYmxvY2soJ1NFTEVDVCAxJyktPmxhbmd1YWdlKCdzcWwnKQogKiBQcm9kdWNlczogRE8gJCQgU0VMRUNUIDEgJCQgTEFOR1VBR0Ugc3FsCiAqCiAqIEBwYXJhbSBzdHJpbmcgJGNvZGUgVGhlIGFub255bW91cyBjb2RlIGJsb2NrIHRvIGV4ZWN1dGUKICoKICogQHJldHVybiBEb0ZpbmFsU3RlcCBCdWlsZGVyIGZvciBETyBzdGF0ZW1lbnQgb3B0aW9ucwogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":807,"slug":"type-attr","name":"type_attr","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"type","type":[{"name":"ColumnType","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"TypeAttribute","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema\\Type","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZXMgYSB0eXBlIGF0dHJpYnV0ZSBmb3IgY29tcG9zaXRlIHR5cGVzLgogKgogKiBFeGFtcGxlOiB0eXBlX2F0dHIoJ25hbWUnLCBjb2x1bW5fdHlwZV90ZXh0KCkpCiAqIFByb2R1Y2VzOiBuYW1lIHRleHQKICoKICogRXhhbXBsZTogdHlwZV9hdHRyKCdkZXNjcmlwdGlvbicsIGNvbHVtbl90eXBlX3RleHQoKSktPmNvbGxhdGUoJ2VuX1VTJykKICogUHJvZHVjZXM6IGRlc2NyaXB0aW9uIHRleHQgQ09MTEFURSAiZW5fVVMiCiAqCiAqIEBwYXJhbSBzdHJpbmcgJG5hbWUgVGhlIGF0dHJpYnV0ZSBuYW1lCiAqIEBwYXJhbSBDb2x1bW5UeXBlICR0eXBlIFRoZSBhdHRyaWJ1dGUgdHlwZQogKgogKiBAcmV0dXJuIFR5cGVBdHRyaWJ1dGUgVHlwZSBhdHRyaWJ1dGUgdmFsdWUgb2JqZWN0CiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":816,"slug":"column-type-integer","name":"column_type_integer","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ColumnType","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBpbnRlZ2VyIGRhdGEgdHlwZSAoUG9zdGdyZVNRTCBpbnQ0KS4KICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":825,"slug":"column-type-smallint","name":"column_type_smallint","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ColumnType","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIHNtYWxsaW50IGRhdGEgdHlwZSAoUG9zdGdyZVNRTCBpbnQyKS4KICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":834,"slug":"column-type-bigint","name":"column_type_bigint","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ColumnType","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIGJpZ2ludCBkYXRhIHR5cGUgKFBvc3RncmVTUUwgaW50OCkuCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":843,"slug":"column-type-boolean","name":"column_type_boolean","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ColumnType","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIGJvb2xlYW4gZGF0YSB0eXBlLgogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":852,"slug":"column-type-text","name":"column_type_text","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ColumnType","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIHRleHQgZGF0YSB0eXBlLgogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":861,"slug":"column-type-varchar","name":"column_type_varchar","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"length","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ColumnType","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIHZhcmNoYXIgZGF0YSB0eXBlIHdpdGggbGVuZ3RoIGNvbnN0cmFpbnQuCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":870,"slug":"column-type-char","name":"column_type_char","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"length","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ColumnType","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIGNoYXIgZGF0YSB0eXBlIHdpdGggbGVuZ3RoIGNvbnN0cmFpbnQuCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":879,"slug":"column-type-numeric","name":"column_type_numeric","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"precision","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"scale","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"ColumnType","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIG51bWVyaWMgZGF0YSB0eXBlIHdpdGggb3B0aW9uYWwgcHJlY2lzaW9uIGFuZCBzY2FsZS4KICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":888,"slug":"column-type-decimal","name":"column_type_decimal","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"precision","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"scale","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"ColumnType","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIGRlY2ltYWwgZGF0YSB0eXBlIHdpdGggb3B0aW9uYWwgcHJlY2lzaW9uIGFuZCBzY2FsZS4KICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":897,"slug":"column-type-real","name":"column_type_real","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ColumnType","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIHJlYWwgZGF0YSB0eXBlIChQb3N0Z3JlU1FMIGZsb2F0NCkuCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":906,"slug":"column-type-double-precision","name":"column_type_double_precision","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ColumnType","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIGRvdWJsZSBwcmVjaXNpb24gZGF0YSB0eXBlIChQb3N0Z3JlU1FMIGZsb2F0OCkuCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":915,"slug":"column-type-date","name":"column_type_date","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ColumnType","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIGRhdGUgZGF0YSB0eXBlLgogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":924,"slug":"column-type-time","name":"column_type_time","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"precision","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"ColumnType","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIHRpbWUgZGF0YSB0eXBlIHdpdGggb3B0aW9uYWwgcHJlY2lzaW9uLgogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":933,"slug":"column-type-timestamp","name":"column_type_timestamp","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"precision","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"ColumnType","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIHRpbWVzdGFtcCBkYXRhIHR5cGUgd2l0aCBvcHRpb25hbCBwcmVjaXNpb24uCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":942,"slug":"column-type-timestamptz","name":"column_type_timestamptz","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"precision","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"ColumnType","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIHRpbWVzdGFtcCB3aXRoIHRpbWUgem9uZSBkYXRhIHR5cGUgd2l0aCBvcHRpb25hbCBwcmVjaXNpb24uCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":951,"slug":"column-type-interval","name":"column_type_interval","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ColumnType","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBpbnRlcnZhbCBkYXRhIHR5cGUuCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":960,"slug":"column-type-uuid","name":"column_type_uuid","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ColumnType","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFVVSUQgZGF0YSB0eXBlLgogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":969,"slug":"column-type-json","name":"column_type_json","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ColumnType","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIEpTT04gZGF0YSB0eXBlLgogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":978,"slug":"column-type-jsonb","name":"column_type_jsonb","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ColumnType","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIEpTT05CIGRhdGEgdHlwZS4KICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":987,"slug":"column-type-bytea","name":"column_type_bytea","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ColumnType","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIGJ5dGVhIGRhdGEgdHlwZS4KICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":996,"slug":"column-type-xml","name":"column_type_xml","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ColumnType","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBYTUwgZGF0YSB0eXBlLgogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1005,"slug":"column-type-inet","name":"column_type_inet","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ColumnType","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBpbmV0IGRhdGEgdHlwZS4KICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1014,"slug":"column-type-cidr","name":"column_type_cidr","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ColumnType","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIGNpZHIgZGF0YSB0eXBlLgogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1023,"slug":"column-type-macaddr","name":"column_type_macaddr","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ColumnType","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIG1hY2FkZHIgZGF0YSB0eXBlLgogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1032,"slug":"column-type-serial","name":"column_type_serial","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ColumnType","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIHNlcmlhbCBkYXRhIHR5cGUuCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1041,"slug":"column-type-smallserial","name":"column_type_smallserial","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ColumnType","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIHNtYWxsc2VyaWFsIGRhdGEgdHlwZS4KICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1050,"slug":"column-type-bigserial","name":"column_type_bigserial","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ColumnType","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIGJpZ3NlcmlhbCBkYXRhIHR5cGUuCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1059,"slug":"column-type-array","name":"column_type_array","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"elementType","type":[{"name":"ColumnType","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ColumnType","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBhcnJheSBkYXRhIHR5cGUgZnJvbSBhbiBlbGVtZW50IHR5cGUuCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1071,"slug":"column-type-custom","name":"column_type_custom","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"typeName","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"schema","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"ColumnType","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIGN1c3RvbSBkYXRhIHR5cGUuCiAqCiAqIEBwYXJhbSBzdHJpbmcgJHR5cGVOYW1lIFR5cGUgbmFtZQogKiBAcGFyYW0gbnVsbHxzdHJpbmcgJHNjaGVtYSBPcHRpb25hbCBzY2hlbWEgbmFtZQogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1084,"slug":"column-type-from-string","name":"column_type_from_string","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"typeName","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ColumnType","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIFBhcnNlIGEgUG9zdGdyZVNRTCB0eXBlIHN0cmluZyBpbnRvIGEgQ29sdW1uVHlwZS4KICoKICogSGFuZGxlcyBhbGwgUG9zdGdyZVNRTCB0eXBlIHN5bnRheCBpbmNsdWRpbmcgcHJlY2lzaW9uLCBhcnJheXMsIGFuZCBzY2hlbWEtcXVhbGlmaWVkIHR5cGVzLgogKgogKiBAcGFyYW0gc3RyaW5nICR0eXBlTmFtZSBQb3N0Z3JlU1FMIHR5cGUgc3RyaW5nIChlLmcuLCAnaW50ZWdlcicsICdjaGFyYWN0ZXIgdmFyeWluZygyNTUpJywgJ3RleHRbXScpCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1092,"slug":"value-type-text","name":"value_type_text","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1098,"slug":"value-type-varchar","name":"value_type_varchar","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1104,"slug":"value-type-char","name":"value_type_char","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1110,"slug":"value-type-bpchar","name":"value_type_bpchar","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1116,"slug":"value-type-int2","name":"value_type_int2","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1122,"slug":"value-type-smallint","name":"value_type_smallint","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1128,"slug":"value-type-int4","name":"value_type_int4","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1134,"slug":"value-type-integer","name":"value_type_integer","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1140,"slug":"value-type-int8","name":"value_type_int8","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1146,"slug":"value-type-bigint","name":"value_type_bigint","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1152,"slug":"value-type-float4","name":"value_type_float4","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1158,"slug":"value-type-real","name":"value_type_real","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1164,"slug":"value-type-float8","name":"value_type_float8","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1170,"slug":"value-type-double","name":"value_type_double","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1176,"slug":"value-type-numeric","name":"value_type_numeric","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1182,"slug":"value-type-money","name":"value_type_money","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1188,"slug":"value-type-bool","name":"value_type_bool","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1194,"slug":"value-type-boolean","name":"value_type_boolean","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1200,"slug":"value-type-bytea","name":"value_type_bytea","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1206,"slug":"value-type-bit","name":"value_type_bit","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1212,"slug":"value-type-varbit","name":"value_type_varbit","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1218,"slug":"value-type-date","name":"value_type_date","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1224,"slug":"value-type-time","name":"value_type_time","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1230,"slug":"value-type-timetz","name":"value_type_timetz","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1236,"slug":"value-type-timestamp","name":"value_type_timestamp","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1242,"slug":"value-type-timestamptz","name":"value_type_timestamptz","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1248,"slug":"value-type-interval","name":"value_type_interval","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1254,"slug":"value-type-json","name":"value_type_json","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1260,"slug":"value-type-jsonb","name":"value_type_jsonb","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1266,"slug":"value-type-uuid","name":"value_type_uuid","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1272,"slug":"value-type-inet","name":"value_type_inet","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1278,"slug":"value-type-cidr","name":"value_type_cidr","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1284,"slug":"value-type-macaddr","name":"value_type_macaddr","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1290,"slug":"value-type-macaddr8","name":"value_type_macaddr8","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1296,"slug":"value-type-xml","name":"value_type_xml","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1302,"slug":"value-type-oid","name":"value_type_oid","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1308,"slug":"value-type-text-array","name":"value_type_text_array","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1314,"slug":"value-type-varchar-array","name":"value_type_varchar_array","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1320,"slug":"value-type-int2-array","name":"value_type_int2_array","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1326,"slug":"value-type-int4-array","name":"value_type_int4_array","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1332,"slug":"value-type-int8-array","name":"value_type_int8_array","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1338,"slug":"value-type-float4-array","name":"value_type_float4_array","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1344,"slug":"value-type-float8-array","name":"value_type_float8_array","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1350,"slug":"value-type-bool-array","name":"value_type_bool_array","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1356,"slug":"value-type-uuid-array","name":"value_type_uuid_array","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1362,"slug":"value-type-json-array","name":"value_type_json_array","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1368,"slug":"value-type-jsonb-array","name":"value_type_jsonb_array","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1384,"slug":"schema","name":"schema","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"tables","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"sequences","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"views","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"materializedViews","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"functions","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"procedures","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"domains","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"extensions","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"}],"return_type":[{"name":"Schema","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBsaXN0PFNjaGVtYVRhYmxlPiAkdGFibGVzCiAqIEBwYXJhbSBsaXN0PFNjaGVtYVNlcXVlbmNlPiAkc2VxdWVuY2VzCiAqIEBwYXJhbSBsaXN0PFNjaGVtYVZpZXc+ICR2aWV3cwogKiBAcGFyYW0gbGlzdDxTY2hlbWFNYXRlcmlhbGl6ZWRWaWV3PiAkbWF0ZXJpYWxpemVkVmlld3MKICogQHBhcmFtIGxpc3Q8U2NoZW1hRnVuY3Rpb24+ICRmdW5jdGlvbnMKICogQHBhcmFtIGxpc3Q8U2NoZW1hUHJvY2VkdXJlPiAkcHJvY2VkdXJlcwogKiBAcGFyYW0gbGlzdDxTY2hlbWFEb21haW4+ICRkb21haW5zCiAqIEBwYXJhbSBsaXN0PFNjaGVtYUV4dGVuc2lvbj4gJGV4dGVuc2lvbnMKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1420,"slug":"schema-table","name":"schema_table","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"columns","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"primaryKey","type":[{"name":"PrimaryKey","namespace":"Flow\\PostgreSql\\Schema\\Constraint","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"indexes","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"foreignKeys","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"uniqueConstraints","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"checkConstraints","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"excludeConstraints","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"triggers","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"schema","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'public'"},{"name":"unlogged","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"partitionStrategy","type":[{"name":"PartitionStrategy","namespace":"Flow\\PostgreSql\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"partitionColumns","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"inherits","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"tablespace","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Table","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBub24tZW1wdHktbGlzdDxTY2hlbWFDb2x1bW4+ICRjb2x1bW5zCiAqIEBwYXJhbSBsaXN0PFNjaGVtYUluZGV4PiAkaW5kZXhlcwogKiBAcGFyYW0gbGlzdDxTY2hlbWFGb3JlaWduS2V5PiAkZm9yZWlnbktleXMKICogQHBhcmFtIGxpc3Q8U2NoZW1hVW5pcXVlQ29uc3RyYWludD4gJHVuaXF1ZUNvbnN0cmFpbnRzCiAqIEBwYXJhbSBsaXN0PFNjaGVtYUNoZWNrQ29uc3RyYWludD4gJGNoZWNrQ29uc3RyYWludHMKICogQHBhcmFtIGxpc3Q8U2NoZW1hRXhjbHVkZUNvbnN0cmFpbnQ+ICRleGNsdWRlQ29uc3RyYWludHMKICogQHBhcmFtIGxpc3Q8U2NoZW1hVHJpZ2dlcj4gJHRyaWdnZXJzCiAqIEBwYXJhbSBsaXN0PHN0cmluZz4gJHBhcnRpdGlvbkNvbHVtbnMKICogQHBhcmFtIGxpc3Q8c3RyaW5nPiAkaW5oZXJpdHMKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1465,"slug":"schema-table-options","name":"schema_table_options","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"foreignKeys","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"checkConstraints","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"excludeConstraints","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"triggers","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"unlogged","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"partitionStrategy","type":[{"name":"PartitionStrategy","namespace":"Flow\\PostgreSql\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"partitionColumns","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"inherits","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"tablespace","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"TableOptions","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBsaXN0PFNjaGVtYUZvcmVpZ25LZXk+ICRmb3JlaWduS2V5cwogKiBAcGFyYW0gbGlzdDxTY2hlbWFDaGVja0NvbnN0cmFpbnQ+ICRjaGVja0NvbnN0cmFpbnRzCiAqIEBwYXJhbSBsaXN0PFNjaGVtYUV4Y2x1ZGVDb25zdHJhaW50PiAkZXhjbHVkZUNvbnN0cmFpbnRzCiAqIEBwYXJhbSBsaXN0PFNjaGVtYVRyaWdnZXI+ICR0cmlnZ2VycwogKiBAcGFyYW0gbGlzdDxzdHJpbmc+ICRwYXJ0aXRpb25Db2x1bW5zCiAqIEBwYXJhbSBsaXN0PHN0cmluZz4gJGluaGVyaXRzCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1490,"slug":"schema-column","name":"schema_column","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"type","type":[{"name":"ColumnType","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"default","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"isIdentity","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"identityGeneration","type":[{"name":"IdentityGeneration","namespace":"Flow\\PostgreSql\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"isGenerated","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"generationExpression","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"ordinalPosition","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Column","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1515,"slug":"schema-column-integer","name":"schema_column_integer","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"default","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Column","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1524,"slug":"schema-column-smallint","name":"schema_column_smallint","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"default","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Column","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1533,"slug":"schema-column-bigint","name":"schema_column_bigint","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"default","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Column","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1542,"slug":"schema-column-serial","name":"schema_column_serial","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Column","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1548,"slug":"schema-column-small-serial","name":"schema_column_small_serial","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Column","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1554,"slug":"schema-column-big-serial","name":"schema_column_big_serial","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Column","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1560,"slug":"schema-column-boolean","name":"schema_column_boolean","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"default","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Column","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1569,"slug":"schema-column-text","name":"schema_column_text","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"default","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Column","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1578,"slug":"schema-column-varchar","name":"schema_column_varchar","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"length","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"default","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Column","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1588,"slug":"schema-column-char","name":"schema_column_char","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"length","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"default","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Column","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1598,"slug":"schema-column-numeric","name":"schema_column_numeric","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"precision","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"scale","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"default","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Column","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1609,"slug":"schema-column-real","name":"schema_column_real","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"default","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Column","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1618,"slug":"schema-column-double-precision","name":"schema_column_double_precision","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"default","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Column","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1627,"slug":"schema-column-date","name":"schema_column_date","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"default","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Column","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1636,"slug":"schema-column-time","name":"schema_column_time","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"precision","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"default","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Column","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1646,"slug":"schema-column-timestamp","name":"schema_column_timestamp","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"precision","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"default","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Column","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1656,"slug":"schema-column-timestamp-tz","name":"schema_column_timestamp_tz","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"precision","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"default","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Column","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1666,"slug":"schema-column-interval","name":"schema_column_interval","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"default","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Column","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1675,"slug":"schema-column-uuid","name":"schema_column_uuid","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"default","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Column","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1684,"slug":"schema-column-json","name":"schema_column_json","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"default","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Column","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1693,"slug":"schema-column-jsonb","name":"schema_column_jsonb","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"default","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Column","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1702,"slug":"schema-column-bytea","name":"schema_column_bytea","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"default","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Column","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1711,"slug":"schema-column-inet","name":"schema_column_inet","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"default","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Column","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1720,"slug":"schema-column-cidr","name":"schema_column_cidr","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"default","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Column","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1729,"slug":"schema-column-macaddr","name":"schema_column_macaddr","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"default","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Column","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1741,"slug":"schema-primary-key","name":"schema_primary_key","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"columns","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"PrimaryKey","namespace":"Flow\\PostgreSql\\Schema\\Constraint","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBub24tZW1wdHktbGlzdDxzdHJpbmc+ICRjb2x1bW5zCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1751,"slug":"schema-foreign-key","name":"schema_foreign_key","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"columns","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"referenceTable","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"referenceColumns","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"referenceSchema","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'public'"},{"name":"onUpdate","type":[{"name":"ReferentialAction","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\PostgreSql\\QueryBuilder\\Schema\\ReferentialAction::..."},{"name":"onDelete","type":[{"name":"ReferentialAction","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\PostgreSql\\QueryBuilder\\Schema\\ReferentialAction::..."},{"name":"deferrable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"initiallyDeferred","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"ForeignKey","namespace":"Flow\\PostgreSql\\Schema\\Constraint","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBub24tZW1wdHktbGlzdDxzdHJpbmc+ICRjb2x1bW5zCiAqIEBwYXJhbSBub24tZW1wdHktbGlzdDxzdHJpbmc+ICRyZWZlcmVuY2VDb2x1bW5zCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1779,"slug":"schema-unique","name":"schema_unique","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"columns","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"nullsNotDistinct","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"UniqueConstraint","namespace":"Flow\\PostgreSql\\Schema\\Constraint","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBub24tZW1wdHktbGlzdDxzdHJpbmc+ICRjb2x1bW5zCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1785,"slug":"schema-check","name":"schema_check","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"expression","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"noInherit","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"CheckConstraint","namespace":"Flow\\PostgreSql\\Schema\\Constraint","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1791,"slug":"schema-exclude","name":"schema_exclude","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"definition","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"ExcludeConstraint","namespace":"Flow\\PostgreSql\\Schema\\Constraint","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1800,"slug":"schema-index","name":"schema_index","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"columns","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"unique","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"method","type":[{"name":"IndexMethod","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\PostgreSql\\Schema\\IndexMethod::..."},{"name":"primary","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"predicate","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Index","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBub24tZW1wdHktbGlzdDxzdHJpbmc+ICRjb2x1bW5zCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1812,"slug":"schema-sequence","name":"schema_sequence","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"dataType","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'bigint'"},{"name":"startValue","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"1"},{"name":"minValue","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"1"},{"name":"maxValue","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"incrementBy","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"1"},{"name":"cycle","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"cacheValue","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"1"},{"name":"ownedByTable","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"ownedByColumn","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Sequence","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1839,"slug":"schema-view","name":"schema_view","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"definition","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"isUpdatable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"View","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1848,"slug":"schema-materialized-view","name":"schema_materialized_view","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"definition","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"indexes","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"}],"return_type":[{"name":"MaterializedView","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBsaXN0PFNjaGVtYUluZGV4PiAkaW5kZXhlcwogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1857,"slug":"schema-function","name":"schema_function","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"returnType","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"argumentTypes","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"language","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'sql'"},{"name":"definition","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"isStrict","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"volatility","type":[{"name":"FunctionVolatility","namespace":"Flow\\PostgreSql\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Func","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBsaXN0PHN0cmluZz4gJGFyZ3VtZW50VHlwZXMKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1873,"slug":"schema-procedure","name":"schema_procedure","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"argumentTypes","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"language","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'sql'"},{"name":"definition","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Procedure","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBsaXN0PHN0cmluZz4gJGFyZ3VtZW50VHlwZXMKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1886,"slug":"schema-trigger","name":"schema_trigger","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"tableName","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"timing","type":[{"name":"TriggerTiming","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"events","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"functionName","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"forEachRow","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"whenCondition","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Trigger","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBub24tZW1wdHktbGlzdDxUcmlnZ2VyRXZlbnQ+ICRldmVudHMKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1902,"slug":"schema-domain","name":"schema_domain","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"baseType","type":[{"name":"ColumnType","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nullable","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"default","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"checkConstraints","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"}],"return_type":[{"name":"Domain","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBsaXN0PFNjaGVtYUNoZWNrQ29uc3RyYWludD4gJGNoZWNrQ29uc3RyYWludHMKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1913,"slug":"schema-extension","name":"schema_extension","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"version","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Extension","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1922,"slug":"client-catalog-provider","name":"client_catalog_provider","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"client","type":[{"name":"Client","namespace":"Flow\\PostgreSql\\Client","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"schemaNames","type":[{"name":"array","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"exclusionPolicy","type":[{"name":"ExclusionPolicy","namespace":"Flow\\PostgreSql\\Schema\\Exclusion","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"CatalogProvider","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSA\/bGlzdDxzdHJpbmc+ICRzY2hlbWFOYW1lcwogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1931,"slug":"exclude-any","name":"exclude_any","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"policies","type":[{"name":"ExclusionPolicy","namespace":"Flow\\PostgreSql\\Schema\\Exclusion","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"ExclusionPolicy","namespace":"Flow\\PostgreSql\\Schema\\Exclusion","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1937,"slug":"exclude-exact","name":"exclude_exact","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ExclusionPolicy","namespace":"Flow\\PostgreSql\\Schema\\Exclusion","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1943,"slug":"exclude-starts-with","name":"exclude_starts_with","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"prefix","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ExclusionPolicy","namespace":"Flow\\PostgreSql\\Schema\\Exclusion","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1949,"slug":"exclude-ends-with","name":"exclude_ends_with","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"suffix","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ExclusionPolicy","namespace":"Flow\\PostgreSql\\Schema\\Exclusion","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1955,"slug":"exclude-pattern","name":"exclude_pattern","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"pattern","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ExclusionPolicy","namespace":"Flow\\PostgreSql\\Schema\\Exclusion","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1961,"slug":"exclude-schema","name":"exclude_schema","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"schema","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ExclusionPolicy","namespace":"Flow\\PostgreSql\\Schema\\Exclusion","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1967,"slug":"exclude-scoped","name":"exclude_scoped","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"policy","type":[{"name":"ExclusionPolicy","namespace":"Flow\\PostgreSql\\Schema\\Exclusion","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"type","type":[{"name":"SchemaObjectType","namespace":"Flow\\PostgreSql\\Schema\\Exclusion","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"schema","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"ExclusionPolicy","namespace":"Flow\\PostgreSql\\Schema\\Exclusion","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1976,"slug":"manual-catalog-provider","name":"manual_catalog_provider","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"catalog","type":[{"name":"Catalog","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"CatalogProvider","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1982,"slug":"chain-catalog-provider","name":"chain_catalog_provider","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"providers","type":[{"name":"CatalogProvider","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"ChainCatalogProvider","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":1991,"slug":"catalog-comparator","name":"catalog_comparator","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"renameStrategy","type":[{"name":"RenameStrategy","namespace":"Flow\\PostgreSql\\Schema\\Diff","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"viewDependencyResolver","type":[{"name":"ViewDependencyResolver","namespace":"Flow\\PostgreSql\\Schema\\Diff","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"tableOrderStrategy","type":[{"name":"ExecutionOrderStrategy","namespace":"Flow\\PostgreSql\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"dropIfExists","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"CatalogComparator","namespace":"Flow\\PostgreSql\\Schema\\Diff","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBudWxsfEV4ZWN1dGlvbk9yZGVyU3RyYXRlZ3k8XEZsb3dcUG9zdGdyZVNxbFxTY2hlbWFcVGFibGU+ICR0YWJsZU9yZGVyU3RyYXRlZ3kKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":2006,"slug":"ast-view-dependency-resolver","name":"ast_view_dependency_resolver","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"AstViewDependencyResolver","namespace":"Flow\\PostgreSql\\Schema\\Diff","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":2012,"slug":"noop-view-dependency-resolver","name":"noop_view_dependency_resolver","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"NoopViewDependencyResolver","namespace":"Flow\\PostgreSql\\Schema\\Diff","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":2018,"slug":"foreign-key-dependency-order","name":"foreign_key_dependency_order","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ForeignKeyDependencyOrder","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":2027,"slug":"no-execution-order","name":"no_execution_order","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"NoExecutionOrder","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEByZXR1cm4gTm9FeGVjdXRpb25PcmRlcjxtaXhlZD4KICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":2033,"slug":"view-dependency-order","name":"view_dependency_order","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ViewDependencyOrder","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/schema.php","start_line_in_file":2039,"slug":"materialized-view-dependency-order","name":"materialized_view_dependency_order","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"MaterializedViewDependencyOrder","namespace":"Flow\\PostgreSql\\Schema","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":117,"slug":"select","name":"select","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"expressions","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"SelectBuilder","namespace":"Flow\\PostgreSql\\QueryBuilder\\Select","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIG5ldyBTRUxFQ1QgcXVlcnkgYnVpbGRlci4KICoKICogQHBhcmFtIEV4cHJlc3Npb258c3RyaW5nIC4uLiRleHByZXNzaW9ucyBDb2x1bW5zIHRvIHNlbGVjdC4gSWYgZW1wdHksIHJldHVybnMgU2VsZWN0U2VsZWN0U3RlcC4KICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":134,"slug":"parsed-select","name":"parsed_select","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"sql","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ParsedSelect","namespace":"Flow\\PostgreSql\\QueryBuilder\\Select","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFNlbGVjdEZpbmFsU3RlcCBmcm9tIGEgcmF3IFNRTCBTRUxFQ1Qgc3RyaW5nLgogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":146,"slug":"with","name":"with","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"ctes","type":[{"name":"CTE","namespace":"Flow\\PostgreSql\\QueryBuilder\\Clause","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"WithBuilder","namespace":"Flow\\PostgreSql\\QueryBuilder\\With","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFdJVEggY2xhdXNlIGJ1aWxkZXIgZm9yIENURXMuCiAqCiAqIEV4YW1wbGU6IHdpdGgoY3RlKCd1c2VycycsICRzdWJxdWVyeSkpLT5zZWxlY3Qoc3RhcigpKS0+ZnJvbSh0YWJsZSgndXNlcnMnKSkKICogRXhhbXBsZTogd2l0aChjdGUoJ2EnLCAkcTEpLCBjdGUoJ2InLCAkcTIpKS0+cmVjdXJzaXZlKCktPnNlbGVjdCguLi4pLT5mcm9tKHRhYmxlKCdhJykpCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":159,"slug":"insert","name":"insert","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"InsertIntoStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Insert","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIG5ldyBJTlNFUlQgcXVlcnkgYnVpbGRlci4KICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":175,"slug":"bulk-insert","name":"bulk_insert","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"table","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"columns","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"rowCount","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"BulkInsert","namespace":"Flow\\PostgreSql\\QueryBuilder\\Insert","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBvcHRpbWl6ZWQgYnVsayBJTlNFUlQgcXVlcnkgZm9yIGhpZ2gtcGVyZm9ybWFuY2UgbXVsdGktcm93IGluc2VydHMuCiAqCiAqIFVubGlrZSBpbnNlcnQoKSB3aGljaCB1c2VzIGltbXV0YWJsZSBidWlsZGVyIHBhdHRlcm5zIChPKG7CsikgZm9yIG4gcm93cyksCiAqIHRoaXMgZnVuY3Rpb24gZ2VuZXJhdGVzIFNRTCBkaXJlY3RseSB1c2luZyBzdHJpbmcgb3BlcmF0aW9ucyAoTyhuKSBjb21wbGV4aXR5KS4KICoKICogQHBhcmFtIHN0cmluZyAkdGFibGUgVGFibGUgbmFtZQogKiBAcGFyYW0gbGlzdDxzdHJpbmc+ICRjb2x1bW5zIENvbHVtbiBuYW1lcwogKiBAcGFyYW0gaW50ICRyb3dDb3VudCBOdW1iZXIgb2Ygcm93cyB0byBpbnNlcnQKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":184,"slug":"update","name":"update","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"UpdateTableStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Update","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIG5ldyBVUERBVEUgcXVlcnkgYnVpbGRlci4KICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":193,"slug":"delete","name":"delete","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"DeleteFromStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Delete","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIG5ldyBERUxFVEUgcXVlcnkgYnVpbGRlci4KICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":205,"slug":"merge","name":"merge","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"table","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"alias","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"MergeUsingStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Merge","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIG5ldyBNRVJHRSBxdWVyeSBidWlsZGVyLgogKgogKiBAcGFyYW0gc3RyaW5nICR0YWJsZSBUYXJnZXQgdGFibGUgbmFtZQogKiBAcGFyYW0gbnVsbHxzdHJpbmcgJGFsaWFzIE9wdGlvbmFsIHRhYmxlIGFsaWFzCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":219,"slug":"copy","name":"copy","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"CopyFactory","namespace":"Flow\\PostgreSql\\QueryBuilder\\Factory","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIG5ldyBDT1BZIHF1ZXJ5IGJ1aWxkZXIgZm9yIGRhdGEgaW1wb3J0L2V4cG9ydC4KICoKICogVXNhZ2U6CiAqICAgY29weSgpLT5mcm9tKCd1c2VycycpLT5maWxlKCcvdG1wL3VzZXJzLmNzdicpLT5mb3JtYXQoQ29weUZvcm1hdDo6Q1NWKQogKiAgIGNvcHkoKS0+dG8oJ3VzZXJzJyktPmZpbGUoJy90bXAvdXNlcnMuY3N2JyktPmZvcm1hdChDb3B5Rm9ybWF0OjpDU1YpCiAqICAgY29weSgpLT50b1F1ZXJ5KHNlbGVjdCguLi4pKS0+ZmlsZSgnL3RtcC9kYXRhLmNzdicpCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":231,"slug":"listen","name":"listen","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"channel","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ListenFinalStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Listen","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIExJU1RFTiBzdGF0ZW1lbnQgdG8gc3Vic2NyaWJlIHRoZSBjdXJyZW50IHNlc3Npb24gdG8gYSBub3RpZmljYXRpb24gY2hhbm5lbC4KICoKICogVXNhZ2U6CiAqICAgbGlzdGVuKCdteV9jaGFubmVsJyktPnRvU3FsKCkgIC8vIExJU1RFTiBteV9jaGFubmVsCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":243,"slug":"unlisten","name":"unlisten","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"channel","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"UnlistenFinalStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Unlisten","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBVTkxJU1RFTiBzdGF0ZW1lbnQgdG8gdW5zdWJzY3JpYmUgdGhlIGN1cnJlbnQgc2Vzc2lvbiBmcm9tIGEgbm90aWZpY2F0aW9uIGNoYW5uZWwuCiAqCiAqIFVzYWdlOgogKiAgIHVubGlzdGVuKCdteV9jaGFubmVsJyktPnRvU3FsKCkgIC8vIFVOTElTVEVOIG15X2NoYW5uZWwKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":256,"slug":"notify","name":"notify","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"channel","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"NotifyFinalStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Notify","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIE5PVElGWSBzdGF0ZW1lbnQgdG8gc2VuZCBhIG5vdGlmaWNhdGlvbiBvbiBhIGNoYW5uZWwsIG9wdGlvbmFsbHkgd2l0aCBhIHBheWxvYWQuCiAqCiAqIFVzYWdlOgogKiAgIG5vdGlmeSgnbXlfY2hhbm5lbCcpLT50b1NxbCgpICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTk9USUZZIG15X2NoYW5uZWwKICogICBub3RpZnkoJ215X2NoYW5uZWwnKS0+d2l0aFBheWxvYWQoJ2hlbGxvJyktPnRvU3FsKCkgICAgIC8vIE5PVElGWSBteV9jaGFubmVsLCAnaGVsbG8nCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":277,"slug":"col","name":"col","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"column","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"table","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"schema","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Column","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIGNvbHVtbiByZWZlcmVuY2UgZXhwcmVzc2lvbi4KICoKICogQ2FuIGJlIHVzZWQgaW4gdHdvIG1vZGVzOgogKiAtIFBhcnNlIG1vZGU6IGNvbCgndXNlcnMuaWQnKSBvciBjb2woJ3NjaGVtYS50YWJsZS5jb2x1bW4nKSAtIHBhcnNlcyBkb3Qtc2VwYXJhdGVkIHN0cmluZwogKiAtIEV4cGxpY2l0IG1vZGU6IGNvbCgnaWQnLCAndXNlcnMnKSBvciBjb2woJ2lkJywgJ3VzZXJzJywgJ3NjaGVtYScpIC0gc2VwYXJhdGUgYXJndW1lbnRzCiAqCiAqIFdoZW4gJHRhYmxlIG9yICRzY2hlbWEgaXMgcHJvdmlkZWQsICRjb2x1bW4gbXVzdCBiZSBhIHBsYWluIGNvbHVtbiBuYW1lIChubyBkb3RzKS4KICoKICogQHBhcmFtIHN0cmluZyAkY29sdW1uIENvbHVtbiBuYW1lLCBvciBkb3Qtc2VwYXJhdGVkIHBhdGggbGlrZSAidGFibGUuY29sdW1uIiBvciAic2NoZW1hLnRhYmxlLmNvbHVtbiIKICogQHBhcmFtIG51bGx8c3RyaW5nICR0YWJsZSBUYWJsZSBuYW1lIChvcHRpb25hbCwgdHJpZ2dlcnMgZXhwbGljaXQgbW9kZSkKICogQHBhcmFtIG51bGx8c3RyaW5nICRzY2hlbWEgU2NoZW1hIG5hbWUgKG9wdGlvbmFsLCByZXF1aXJlcyAkdGFibGUpCiAqCiAqIEB0aHJvd3MgSW52YWxpZEV4cHJlc3Npb25FeGNlcHRpb24gd2hlbiAkc2NoZW1hIGlzIHByb3ZpZGVkIHdpdGhvdXQgJHRhYmxlLCBvciB3aGVuICRjb2x1bW4gY29udGFpbnMgZG90cyBpbiBleHBsaWNpdCBtb2RlCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":304,"slug":"star","name":"star","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"table","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Star","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFNFTEVDVCAqIGV4cHJlc3Npb24uCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":320,"slug":"literal","name":"literal","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"value","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Literal","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIGxpdGVyYWwgdmFsdWUgZm9yIHVzZSBpbiBxdWVyaWVzLgogKgogKiBBdXRvbWF0aWNhbGx5IGRldGVjdHMgdGhlIHR5cGUgYW5kIGNyZWF0ZXMgdGhlIGFwcHJvcHJpYXRlIGxpdGVyYWw6CiAqIC0gbGl0ZXJhbCgnaGVsbG8nKSBjcmVhdGVzIGEgc3RyaW5nIGxpdGVyYWwKICogLSBsaXRlcmFsKDQyKSBjcmVhdGVzIGFuIGludGVnZXIgbGl0ZXJhbAogKiAtIGxpdGVyYWwoMy4xNCkgY3JlYXRlcyBhIGZsb2F0IGxpdGVyYWwKICogLSBsaXRlcmFsKHRydWUpIGNyZWF0ZXMgYSBib29sZWFuIGxpdGVyYWwKICogLSBsaXRlcmFsKG51bGwpIGNyZWF0ZXMgYSBOVUxMIGxpdGVyYWwKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":335,"slug":"param","name":"param","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"position","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Parameter","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIHBvc2l0aW9uYWwgcGFyYW1ldGVyICgkMSwgJDIsIGV0Yy4pLgogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":344,"slug":"parameters","name":"parameters","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"count","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"startAt","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"1"}],"return_type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEByZXR1cm4gbGlzdDxQYXJhbWV0ZXI+CiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":370,"slug":"func","name":"func","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"args","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"}],"return_type":[{"name":"FunctionCall","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIGZ1bmN0aW9uIGNhbGwgZXhwcmVzc2lvbi4KICoKICogQHBhcmFtIHN0cmluZyAkbmFtZSBGdW5jdGlvbiBuYW1lIChjYW4gaW5jbHVkZSBzY2hlbWEgbGlrZSAicGdfY2F0YWxvZy5ub3ciKQogKiBAcGFyYW0gbGlzdDxFeHByZXNzaW9ufHN0cmluZz4gJGFyZ3MgRnVuY3Rpb24gYXJndW1lbnRzCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":404,"slug":"agg","name":"agg","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"args","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"distinct","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"AggregateCall","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBhZ2dyZWdhdGUgZnVuY3Rpb24gY2FsbCAoQ09VTlQsIFNVTSwgQVZHLCBldGMuKS4KICoKICogQHBhcmFtIHN0cmluZyAkbmFtZSBBZ2dyZWdhdGUgZnVuY3Rpb24gbmFtZQogKiBAcGFyYW0gbGlzdDxFeHByZXNzaW9ufHN0cmluZz4gJGFyZ3MgRnVuY3Rpb24gYXJndW1lbnRzCiAqIEBwYXJhbSBib29sICRkaXN0aW5jdCBVc2UgRElTVElOQ1QgbW9kaWZpZXIKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":418,"slug":"agg-count","name":"agg_count","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"expr","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"distinct","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"AggregateCall","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBDT1VOVCgqKSBhZ2dyZWdhdGUuCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":431,"slug":"count-all","name":"count_all","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"AggregateCall","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBDT1VOVCgqKSBhZ2dyZWdhdGUuCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":440,"slug":"agg-sum","name":"agg_sum","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"expr","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"distinct","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"AggregateCall","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBTVU0gYWdncmVnYXRlLgogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":449,"slug":"agg-avg","name":"agg_avg","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"expr","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"distinct","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"AggregateCall","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBBVkcgYWdncmVnYXRlLgogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":458,"slug":"agg-min","name":"agg_min","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"expr","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"AggregateCall","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBNSU4gYWdncmVnYXRlLgogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":467,"slug":"agg-max","name":"agg_max","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"expr","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"AggregateCall","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBNQVggYWdncmVnYXRlLgogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":478,"slug":"coalesce","name":"coalesce","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"expressions","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"Coalesce","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIENPQUxFU0NFIGV4cHJlc3Npb24uCiAqCiAqIEBwYXJhbSBFeHByZXNzaW9ufHN0cmluZyAuLi4kZXhwcmVzc2lvbnMgRXhwcmVzc2lvbnMgdG8gY29hbGVzY2UKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":489,"slug":"nullif","name":"nullif","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"expr1","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"expr2","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"NullIf","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIE5VTExJRiBleHByZXNzaW9uLgogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":503,"slug":"greatest","name":"greatest","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"expressions","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"Greatest","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIEdSRUFURVNUIGV4cHJlc3Npb24uCiAqCiAqIEBwYXJhbSBFeHByZXNzaW9ufHN0cmluZyAuLi4kZXhwcmVzc2lvbnMgRXhwcmVzc2lvbnMgdG8gY29tcGFyZQogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":516,"slug":"least","name":"least","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"expressions","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"Least","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIExFQVNUIGV4cHJlc3Npb24uCiAqCiAqIEBwYXJhbSBFeHByZXNzaW9ufHN0cmluZyAuLi4kZXhwcmVzc2lvbnMgRXhwcmVzc2lvbnMgdG8gY29tcGFyZQogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":530,"slug":"cast","name":"cast","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"expr","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"dataType","type":[{"name":"ColumnType","namespace":"Flow\\PostgreSql\\QueryBuilder\\Schema","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"TypeCast","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIHR5cGUgY2FzdCBleHByZXNzaW9uLgogKgogKiBAcGFyYW0gRXhwcmVzc2lvbnxzdHJpbmcgJGV4cHIgRXhwcmVzc2lvbiB0byBjYXN0CiAqIEBwYXJhbSBDb2x1bW5UeXBlICRkYXRhVHlwZSBUYXJnZXQgZGF0YSB0eXBlICh1c2UgY29sdW1uX3R5cGVfKiBmdW5jdGlvbnMpCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":542,"slug":"collate","name":"collate","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"expr","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"collation","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Collate","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIENPTExBVEUgZXhwcmVzc2lvbi4KICoKICogQHBhcmFtIEV4cHJlc3Npb258c3RyaW5nICRleHByIEV4cHJlc3Npb24gdG8gY29sbGF0ZQogKiBAcGFyYW0gc3RyaW5nICRjb2xsYXRpb24gQ29sbGF0aW9uIG5hbWUgYXMgd3JpdHRlbiBpbiBTUUw6ICdDJywgJyJkZV9ERSInLCAncGdfY2F0YWxvZy4iQyInCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":557,"slug":"current-timestamp","name":"current_timestamp","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"SQLValueFunctionExpression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIFNRTCBzdGFuZGFyZCBDVVJSRU5UX1RJTUVTVEFNUCBmdW5jdGlvbi4KICoKICogUmV0dXJucyB0aGUgY3VycmVudCBkYXRlIGFuZCB0aW1lIChhdCB0aGUgc3RhcnQgb2YgdGhlIHRyYW5zYWN0aW9uKS4KICogVXNlZnVsIGFzIGEgY29sdW1uIGRlZmF1bHQgdmFsdWUgb3IgaW4gU0VMRUNUIHF1ZXJpZXMuCiAqCiAqIEV4YW1wbGU6IGNvbHVtbignY3JlYXRlZF9hdCcsIGNvbHVtbl90eXBlX3RpbWVzdGFtcCgpKS0+ZGVmYXVsdChjdXJyZW50X3RpbWVzdGFtcCgpKQogKiBFeGFtcGxlOiBzZWxlY3QoKS0+c2VsZWN0KGN1cnJlbnRfdGltZXN0YW1wKCktPmFzKCdub3cnKSkKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":572,"slug":"current-date","name":"current_date","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"SQLValueFunctionExpression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIFNRTCBzdGFuZGFyZCBDVVJSRU5UX0RBVEUgZnVuY3Rpb24uCiAqCiAqIFJldHVybnMgdGhlIGN1cnJlbnQgZGF0ZSAoYXQgdGhlIHN0YXJ0IG9mIHRoZSB0cmFuc2FjdGlvbikuCiAqIFVzZWZ1bCBhcyBhIGNvbHVtbiBkZWZhdWx0IHZhbHVlIG9yIGluIFNFTEVDVCBxdWVyaWVzLgogKgogKiBFeGFtcGxlOiBjb2x1bW4oJ2JpcnRoX2RhdGUnLCBjb2x1bW5fdHlwZV9kYXRlKCkpLT5kZWZhdWx0KGN1cnJlbnRfZGF0ZSgpKQogKiBFeGFtcGxlOiBzZWxlY3QoKS0+c2VsZWN0KGN1cnJlbnRfZGF0ZSgpLT5hcygndG9kYXknKSkKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":587,"slug":"current-time","name":"current_time","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"SQLValueFunctionExpression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIFNRTCBzdGFuZGFyZCBDVVJSRU5UX1RJTUUgZnVuY3Rpb24uCiAqCiAqIFJldHVybnMgdGhlIGN1cnJlbnQgdGltZSAoYXQgdGhlIHN0YXJ0IG9mIHRoZSB0cmFuc2FjdGlvbikuCiAqIFVzZWZ1bCBhcyBhIGNvbHVtbiBkZWZhdWx0IHZhbHVlIG9yIGluIFNFTEVDVCBxdWVyaWVzLgogKgogKiBFeGFtcGxlOiBjb2x1bW4oJ3N0YXJ0X3RpbWUnLCBjb2x1bW5fdHlwZV90aW1lKCkpLT5kZWZhdWx0KGN1cnJlbnRfdGltZSgpKQogKiBFeGFtcGxlOiBzZWxlY3QoKS0+c2VsZWN0KGN1cnJlbnRfdGltZSgpLT5hcygnbm93X3RpbWUnKSkKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":600,"slug":"case-when","name":"case_when","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"whenClauses","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"elseResult","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"operand","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"CaseExpression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIENBU0UgZXhwcmVzc2lvbi4KICoKICogQHBhcmFtIG5vbi1lbXB0eS1saXN0PFdoZW5DbGF1c2U+ICR3aGVuQ2xhdXNlcyBXSEVOIGNsYXVzZXMKICogQHBhcmFtIG51bGx8RXhwcmVzc2lvbnxzdHJpbmcgJGVsc2VSZXN1bHQgRUxTRSByZXN1bHQgKG9wdGlvbmFsKQogKiBAcGFyYW0gbnVsbHxFeHByZXNzaW9ufHN0cmluZyAkb3BlcmFuZCBDQVNFIG9wZXJhbmQgZm9yIHNpbXBsZSBDQVNFIChvcHRpb25hbCkKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":616,"slug":"when","name":"when","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"condition","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"result","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"WhenClause","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFdIRU4gY2xhdXNlIGZvciBDQVNFIGV4cHJlc3Npb24uCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":628,"slug":"sub-select","name":"sub_select","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"query","type":[{"name":"SelectFinalStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Select","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Subquery","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIHN1YnF1ZXJ5IGV4cHJlc3Npb24uCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":642,"slug":"array-expr","name":"array_expr","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"elements","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ArrayExpression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBhcnJheSBleHByZXNzaW9uLgogKgogKiBAcGFyYW0gbGlzdDxFeHByZXNzaW9ufHN0cmluZz4gJGVsZW1lbnRzIEFycmF5IGVsZW1lbnRzCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":655,"slug":"row-expr","name":"row_expr","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"elements","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"RowExpression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIHJvdyBleHByZXNzaW9uLgogKgogKiBAcGFyYW0gbGlzdDxFeHByZXNzaW9ufHN0cmluZz4gJGVsZW1lbnRzIFJvdyBlbGVtZW50cwogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":666,"slug":"binary-expr","name":"binary_expr","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"left","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"operator","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"right","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"BinaryExpression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIGJpbmFyeSBleHByZXNzaW9uIChsZWZ0IG9wIHJpZ2h0KS4KICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":684,"slug":"window-func","name":"window_func","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"args","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"partitionBy","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"orderBy","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"}],"return_type":[{"name":"WindowFunction","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIHdpbmRvdyBmdW5jdGlvbi4KICoKICogQHBhcmFtIHN0cmluZyAkbmFtZSBGdW5jdGlvbiBuYW1lCiAqIEBwYXJhbSBsaXN0PEV4cHJlc3Npb258c3RyaW5nPiAkYXJncyBGdW5jdGlvbiBhcmd1bWVudHMKICogQHBhcmFtIGxpc3Q8RXhwcmVzc2lvbnxzdHJpbmc+ICRwYXJ0aXRpb25CeSBQQVJUSVRJT04gQlkgZXhwcmVzc2lvbnMKICogQHBhcmFtIGxpc3Q8T3JkZXJCeT4gJG9yZGVyQnkgT1JERVIgQlkgaXRlbXMKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":705,"slug":"concat","name":"concat","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"expressions","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"BinaryExpression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENvbmNhdGVuYXRlIGV4cHJlc3Npb25zIHdpdGggdGhlIHx8IG9wZXJhdG9yLgogKgogKiBFeGFtcGxlOiBjb25jYXQoY29sKCdzY2hlbWEnKSwgbGl0ZXJhbCgnLicpLCBjb2woJ3RhYmxlJykpCiAqIFByb2R1Y2VzOiBzY2hlbWEgfHwgJy4nIHx8IHRhYmxlCiAqCiAqIEBwYXJhbSBFeHByZXNzaW9ufHN0cmluZyAuLi4kZXhwcmVzc2lvbnMgQXQgbGVhc3QgMiBleHByZXNzaW9ucyB0byBjb25jYXRlbmF0ZQogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":735,"slug":"table","name":"table","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"schema","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Table","namespace":"Flow\\PostgreSql\\QueryBuilder\\Table","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIHRhYmxlIHJlZmVyZW5jZS4KICoKICogU3VwcG9ydHMgZG90IG5vdGF0aW9uIGZvciBzY2hlbWEtcXVhbGlmaWVkIG5hbWVzOiAicHVibGljLnVzZXJzIiBvciBleHBsaWNpdCBzY2hlbWEgcGFyYW1ldGVyLgogKiBEb3VibGUtcXVvdGVkIGlkZW50aWZpZXJzIHByZXNlcnZlIGRvdHM6ICcibXkudGFibGUiJyBjcmVhdGVzIGEgc2luZ2xlIGlkZW50aWZpZXIuCiAqCiAqIEBwYXJhbSBzdHJpbmcgJG5hbWUgVGFibGUgbmFtZSAobWF5IGluY2x1ZGUgc2NoZW1hIGFzICJzY2hlbWEudGFibGUiKQogKiBAcGFyYW0gbnVsbHxzdHJpbmcgJHNjaGVtYSBTY2hlbWEgbmFtZSAob3B0aW9uYWwsIG92ZXJyaWRlcyBwYXJzZWQgc2NoZW1hKQogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":750,"slug":"derived","name":"derived","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"query","type":[{"name":"SelectFinalStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Select","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"alias","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"DerivedTable","namespace":"Flow\\PostgreSql\\QueryBuilder\\Table","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIGRlcml2ZWQgdGFibGUgKHN1YnF1ZXJ5IGluIEZST00gY2xhdXNlKS4KICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":764,"slug":"lateral","name":"lateral","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"reference","type":[{"name":"TableReference","namespace":"Flow\\PostgreSql\\QueryBuilder\\Table","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Lateral","namespace":"Flow\\PostgreSql\\QueryBuilder\\Table","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIExBVEVSQUwgc3VicXVlcnkuCiAqCiAqIEBwYXJhbSBUYWJsZVJlZmVyZW5jZSAkcmVmZXJlbmNlIFRoZSBzdWJxdWVyeSBvciB0YWJsZSBmdW5jdGlvbiByZWZlcmVuY2UKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":776,"slug":"table-func","name":"table_func","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"function","type":[{"name":"FunctionCall","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"withOrdinality","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"TableFunction","namespace":"Flow\\PostgreSql\\QueryBuilder\\Table","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIHRhYmxlIGZ1bmN0aW9uIHJlZmVyZW5jZS4KICoKICogQHBhcmFtIEZ1bmN0aW9uQ2FsbCAkZnVuY3Rpb24gVGhlIHRhYmxlLXZhbHVlZCBmdW5jdGlvbgogKiBAcGFyYW0gYm9vbCAkd2l0aE9yZGluYWxpdHkgV2hldGhlciB0byBhZGQgV0lUSCBPUkRJTkFMSVRZCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":795,"slug":"values-table","name":"values_table","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"rows","type":[{"name":"RowExpression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"ValuesTable","namespace":"Flow\\PostgreSql\\QueryBuilder\\Table","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFZBTFVFUyBjbGF1c2UgYXMgYSB0YWJsZSByZWZlcmVuY2UuCiAqCiAqIFVzYWdlOgogKiAgIHNlbGVjdCgpLT5mcm9tKAogKiAgICAgICB2YWx1ZXNfdGFibGUoCiAqICAgICAgICAgICByb3dfZXhwcihbbGl0ZXJhbCgxKSwgbGl0ZXJhbCgnQWxpY2UnKV0pLAogKiAgICAgICAgICAgcm93X2V4cHIoW2xpdGVyYWwoMiksIGxpdGVyYWwoJ0JvYicpXSkKICogICAgICAgKS0+YXMoJ3QnLCBbJ2lkJywgJ25hbWUnXSkKICogICApCiAqCiAqIEdlbmVyYXRlczogU0VMRUNUICogRlJPTSAoVkFMVUVTICgxLCAnQWxpY2UnKSwgKDIsICdCb2InKSkgQVMgdChpZCwgbmFtZSkKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":804,"slug":"order-by","name":"order_by","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"expr","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"direction","type":[{"name":"SortDirection","namespace":"Flow\\PostgreSql\\QueryBuilder\\Clause","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\PostgreSql\\QueryBuilder\\Clause\\SortDirection::..."},{"name":"nulls","type":[{"name":"NullsPosition","namespace":"Flow\\PostgreSql\\QueryBuilder\\Clause","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\PostgreSql\\QueryBuilder\\Clause\\NullsPosition::..."}],"return_type":[{"name":"OrderBy","namespace":"Flow\\PostgreSql\\QueryBuilder\\Clause","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBPUkRFUiBCWSBpdGVtLgogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":816,"slug":"asc","name":"asc","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"expr","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nulls","type":[{"name":"NullsPosition","namespace":"Flow\\PostgreSql\\QueryBuilder\\Clause","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\PostgreSql\\QueryBuilder\\Clause\\NullsPosition::..."}],"return_type":[{"name":"OrderBy","namespace":"Flow\\PostgreSql\\QueryBuilder\\Clause","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBPUkRFUiBCWSBpdGVtIHdpdGggQVNDIGRpcmVjdGlvbi4KICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":825,"slug":"desc","name":"desc","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"expr","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"nulls","type":[{"name":"NullsPosition","namespace":"Flow\\PostgreSql\\QueryBuilder\\Clause","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\PostgreSql\\QueryBuilder\\Clause\\NullsPosition::..."}],"return_type":[{"name":"OrderBy","namespace":"Flow\\PostgreSql\\QueryBuilder\\Clause","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBPUkRFUiBCWSBpdGVtIHdpdGggREVTQyBkaXJlY3Rpb24uCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":839,"slug":"cte","name":"cte","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"query","type":[{"name":"SelectFinalStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Select","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"columnNames","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"materialization","type":[{"name":"CTEMaterialization","namespace":"Flow\\PostgreSql\\QueryBuilder\\Clause","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\PostgreSql\\QueryBuilder\\Clause\\CTEMaterialization::..."},{"name":"recursive","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"CTE","namespace":"Flow\\PostgreSql\\QueryBuilder\\Clause","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIENURSAoQ29tbW9uIFRhYmxlIEV4cHJlc3Npb24pLgogKgogKiBAcGFyYW0gc3RyaW5nICRuYW1lIENURSBuYW1lCiAqIEBwYXJhbSBTZWxlY3RGaW5hbFN0ZXAgJHF1ZXJ5IENURSBxdWVyeQogKiBAcGFyYW0gYXJyYXk8c3RyaW5nPiAkY29sdW1uTmFtZXMgQ29sdW1uIGFsaWFzZXMgKG9wdGlvbmFsKQogKiBAcGFyYW0gQ1RFTWF0ZXJpYWxpemF0aW9uICRtYXRlcmlhbGl6YXRpb24gTWF0ZXJpYWxpemF0aW9uIGhpbnQKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":861,"slug":"window-def","name":"window_def","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"partitionBy","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"orderBy","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"frame","type":[{"name":"WindowFrame","namespace":"Flow\\PostgreSql\\QueryBuilder\\Clause","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"WindowDefinition","namespace":"Flow\\PostgreSql\\QueryBuilder\\Clause","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIHdpbmRvdyBkZWZpbml0aW9uIGZvciBXSU5ET1cgY2xhdXNlLgogKgogKiBAcGFyYW0gc3RyaW5nICRuYW1lIFdpbmRvdyBuYW1lCiAqIEBwYXJhbSBsaXN0PEV4cHJlc3Npb258c3RyaW5nPiAkcGFydGl0aW9uQnkgUEFSVElUSU9OIEJZIGV4cHJlc3Npb25zCiAqIEBwYXJhbSBsaXN0PE9yZGVyQnk+ICRvcmRlckJ5IE9SREVSIEJZIGl0ZW1zCiAqIEBwYXJhbSBudWxsfFdpbmRvd0ZyYW1lICRmcmFtZSBXaW5kb3cgZnJhbWUgc3BlY2lmaWNhdGlvbgogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":881,"slug":"window-frame","name":"window_frame","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"mode","type":[{"name":"FrameMode","namespace":"Flow\\PostgreSql\\QueryBuilder\\Clause","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"start","type":[{"name":"FrameBound","namespace":"Flow\\PostgreSql\\QueryBuilder\\Clause","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"end","type":[{"name":"FrameBound","namespace":"Flow\\PostgreSql\\QueryBuilder\\Clause","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"exclusion","type":[{"name":"FrameExclusion","namespace":"Flow\\PostgreSql\\QueryBuilder\\Clause","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\PostgreSql\\QueryBuilder\\Clause\\FrameExclusion::..."}],"return_type":[{"name":"WindowFrame","namespace":"Flow\\PostgreSql\\QueryBuilder\\Clause","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIHdpbmRvdyBmcmFtZSBzcGVjaWZpY2F0aW9uLgogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":894,"slug":"frame-current-row","name":"frame_current_row","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"FrameBound","namespace":"Flow\\PostgreSql\\QueryBuilder\\Clause","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIGZyYW1lIGJvdW5kIGZvciBDVVJSRU5UIFJPVy4KICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":903,"slug":"frame-unbounded-preceding","name":"frame_unbounded_preceding","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"FrameBound","namespace":"Flow\\PostgreSql\\QueryBuilder\\Clause","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIGZyYW1lIGJvdW5kIGZvciBVTkJPVU5ERUQgUFJFQ0VESU5HLgogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":912,"slug":"frame-unbounded-following","name":"frame_unbounded_following","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"FrameBound","namespace":"Flow\\PostgreSql\\QueryBuilder\\Clause","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIGZyYW1lIGJvdW5kIGZvciBVTkJPVU5ERUQgRk9MTE9XSU5HLgogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":921,"slug":"frame-preceding","name":"frame_preceding","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"offset","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"FrameBound","namespace":"Flow\\PostgreSql\\QueryBuilder\\Clause","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIGZyYW1lIGJvdW5kIGZvciBOIFBSRUNFRElORy4KICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":930,"slug":"frame-following","name":"frame_following","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"offset","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"FrameBound","namespace":"Flow\\PostgreSql\\QueryBuilder\\Clause","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIGZyYW1lIGJvdW5kIGZvciBOIEZPTExPV0lORy4KICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":943,"slug":"lock-for","name":"lock_for","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"strength","type":[{"name":"LockStrength","namespace":"Flow\\PostgreSql\\QueryBuilder\\Clause","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"tables","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"waitPolicy","type":[{"name":"LockWaitPolicy","namespace":"Flow\\PostgreSql\\QueryBuilder\\Clause","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\PostgreSql\\QueryBuilder\\Clause\\LockWaitPolicy::..."}],"return_type":[{"name":"LockingClause","namespace":"Flow\\PostgreSql\\QueryBuilder\\Clause","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIGxvY2tpbmcgY2xhdXNlIChGT1IgVVBEQVRFLCBGT1IgU0hBUkUsIGV0Yy4pLgogKgogKiBAcGFyYW0gTG9ja1N0cmVuZ3RoICRzdHJlbmd0aCBMb2NrIHN0cmVuZ3RoCiAqIEBwYXJhbSBsaXN0PHN0cmluZz4gJHRhYmxlcyBUYWJsZXMgdG8gbG9jayAoZW1wdHkgZm9yIGFsbCkKICogQHBhcmFtIExvY2tXYWl0UG9saWN5ICR3YWl0UG9saWN5IFdhaXQgcG9saWN5CiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":957,"slug":"for-update","name":"for_update","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"tables","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"}],"return_type":[{"name":"LockingClause","namespace":"Flow\\PostgreSql\\QueryBuilder\\Clause","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIEZPUiBVUERBVEUgbG9ja2luZyBjbGF1c2UuCiAqCiAqIEBwYXJhbSBsaXN0PHN0cmluZz4gJHRhYmxlcyBUYWJsZXMgdG8gbG9jayAoZW1wdHkgZm9yIGFsbCkKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":968,"slug":"for-share","name":"for_share","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"tables","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"}],"return_type":[{"name":"LockingClause","namespace":"Flow\\PostgreSql\\QueryBuilder\\Clause","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIEZPUiBTSEFSRSBsb2NraW5nIGNsYXVzZS4KICoKICogQHBhcmFtIGxpc3Q8c3RyaW5nPiAkdGFibGVzIFRhYmxlcyB0byBsb2NrIChlbXB0eSBmb3IgYWxsKQogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":977,"slug":"on-conflict-nothing","name":"on_conflict_nothing","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"target","type":[{"name":"ConflictTarget","namespace":"Flow\\PostgreSql\\QueryBuilder\\Clause","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"OnConflictClause","namespace":"Flow\\PostgreSql\\QueryBuilder\\Clause","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBPTiBDT05GTElDVCBETyBOT1RISU5HIGNsYXVzZS4KICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":989,"slug":"on-conflict-update","name":"on_conflict_update","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"target","type":[{"name":"ConflictTarget","namespace":"Flow\\PostgreSql\\QueryBuilder\\Clause","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"updates","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"OnConflictClause","namespace":"Flow\\PostgreSql\\QueryBuilder\\Clause","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBPTiBDT05GTElDVCBETyBVUERBVEUgY2xhdXNlLgogKgogKiBAcGFyYW0gQ29uZmxpY3RUYXJnZXQgJHRhcmdldCBDb25mbGljdCB0YXJnZXQgKGNvbHVtbnMgb3IgY29uc3RyYWludCkKICogQHBhcmFtIGFycmF5PHN0cmluZywgRXhwcmVzc2lvbnxzdHJpbmc+ICR1cGRhdGVzIENvbHVtbiB1cGRhdGVzCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":1003,"slug":"conflict-columns","name":"conflict_columns","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"columns","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ConflictTarget","namespace":"Flow\\PostgreSql\\QueryBuilder\\Clause","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIGNvbmZsaWN0IHRhcmdldCBmb3IgT04gQ09ORkxJQ1QgKGNvbHVtbnMpLgogKgogKiBAcGFyYW0gbGlzdDxzdHJpbmc+ICRjb2x1bW5zIENvbHVtbnMgdGhhdCBkZWZpbmUgdW5pcXVlbmVzcwogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":1012,"slug":"conflict-constraint","name":"conflict_constraint","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ConflictTarget","namespace":"Flow\\PostgreSql\\QueryBuilder\\Clause","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIGNvbmZsaWN0IHRhcmdldCBmb3IgT04gQ09ORkxJQ1QgT04gQ09OU1RSQUlOVC4KICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":1023,"slug":"returning","name":"returning","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"expressions","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"ReturningClause","namespace":"Flow\\PostgreSql\\QueryBuilder\\Clause","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFJFVFVSTklORyBjbGF1c2UuCiAqCiAqIEBwYXJhbSBFeHByZXNzaW9ufHN0cmluZyAuLi4kZXhwcmVzc2lvbnMgRXhwcmVzc2lvbnMgdG8gcmV0dXJuCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":1034,"slug":"returning-all","name":"returning_all","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ReturningClause","namespace":"Flow\\PostgreSql\\QueryBuilder\\Clause","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFJFVFVSTklORyAqIGNsYXVzZS4KICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":1046,"slug":"begin","name":"begin","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"BeginOptionsStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Transaction","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIEJFR0lOIHRyYW5zYWN0aW9uIGJ1aWxkZXIuCiAqCiAqIEV4YW1wbGU6IGJlZ2luKCktPmlzb2xhdGlvbkxldmVsKElzb2xhdGlvbkxldmVsOjpTRVJJQUxJWkFCTEUpLT5yZWFkT25seSgpCiAqIFByb2R1Y2VzOiBCRUdJTiBJU09MQVRJT04gTEVWRUwgU0VSSUFMSVpBQkxFIFJFQUQgT05MWQogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":1058,"slug":"commit","name":"commit","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"CommitOptionsStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Transaction","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIENPTU1JVCB0cmFuc2FjdGlvbiBidWlsZGVyLgogKgogKiBFeGFtcGxlOiBjb21taXQoKS0+YW5kQ2hhaW4oKQogKiBQcm9kdWNlczogQ09NTUlUIEFORCBDSEFJTgogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":1070,"slug":"rollback","name":"rollback","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"RollbackOptionsStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Transaction","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFJPTExCQUNLIHRyYW5zYWN0aW9uIGJ1aWxkZXIuCiAqCiAqIEV4YW1wbGU6IHJvbGxiYWNrKCktPnRvU2F2ZXBvaW50KCdteV9zYXZlcG9pbnQnKQogKiBQcm9kdWNlczogUk9MTEJBQ0sgVE8gU0FWRVBPSU5UIG15X3NhdmVwb2ludAogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":1082,"slug":"savepoint","name":"savepoint","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"SavepointFinalStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Transaction","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFNBVkVQT0lOVC4KICoKICogRXhhbXBsZTogc2F2ZXBvaW50KCdteV9zYXZlcG9pbnQnKQogKiBQcm9kdWNlczogU0FWRVBPSU5UIG15X3NhdmVwb2ludAogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":1094,"slug":"release-savepoint","name":"release_savepoint","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"SavepointFinalStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Transaction","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIFJlbGVhc2UgYSBTQVZFUE9JTlQuCiAqCiAqIEV4YW1wbGU6IHJlbGVhc2Vfc2F2ZXBvaW50KCdteV9zYXZlcG9pbnQnKQogKiBQcm9kdWNlczogUkVMRUFTRSBteV9zYXZlcG9pbnQKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":1106,"slug":"set-transaction","name":"set_transaction","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"SetTransactionOptionsStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Transaction","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFNFVCBUUkFOU0FDVElPTiBidWlsZGVyLgogKgogKiBFeGFtcGxlOiBzZXRfdHJhbnNhY3Rpb24oKS0+aXNvbGF0aW9uTGV2ZWwoSXNvbGF0aW9uTGV2ZWw6OlNFUklBTElaQUJMRSktPnJlYWRPbmx5KCkKICogUHJvZHVjZXM6IFNFVCBUUkFOU0FDVElPTiBJU09MQVRJT04gTEVWRUwgU0VSSUFMSVpBQkxFLCBSRUFEIE9OTFkKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":1118,"slug":"set-session-transaction","name":"set_session_transaction","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"SetTransactionOptionsStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Transaction","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFNFVCBTRVNTSU9OIENIQVJBQ1RFUklTVElDUyBBUyBUUkFOU0FDVElPTiBidWlsZGVyLgogKgogKiBFeGFtcGxlOiBzZXRfc2Vzc2lvbl90cmFuc2FjdGlvbigpLT5pc29sYXRpb25MZXZlbChJc29sYXRpb25MZXZlbDo6U0VSSUFMSVpBQkxFKQogKiBQcm9kdWNlczogU0VUIFNFU1NJT04gQ0hBUkFDVEVSSVNUSUNTIEFTIFRSQU5TQUNUSU9OIElTT0xBVElPTiBMRVZFTCBTRVJJQUxJWkFCTEUKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":1130,"slug":"transaction-snapshot","name":"transaction_snapshot","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"snapshotId","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"SetTransactionFinalStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Transaction","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFNFVCBUUkFOU0FDVElPTiBTTkFQU0hPVCBidWlsZGVyLgogKgogKiBFeGFtcGxlOiB0cmFuc2FjdGlvbl9zbmFwc2hvdCgnMDAwMDAwMDMtMDAwMDAwMUEtMScpCiAqIFByb2R1Y2VzOiBTRVQgVFJBTlNBQ1RJT04gU05BUFNIT1QgJzAwMDAwMDAzLTAwMDAwMDFBLTEnCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":1142,"slug":"prepare-transaction","name":"prepare_transaction","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"transactionId","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"PreparedTransactionFinalStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Transaction","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFBSRVBBUkUgVFJBTlNBQ1RJT04gYnVpbGRlci4KICoKICogRXhhbXBsZTogcHJlcGFyZV90cmFuc2FjdGlvbignbXlfdHJhbnNhY3Rpb24nKQogKiBQcm9kdWNlczogUFJFUEFSRSBUUkFOU0FDVElPTiAnbXlfdHJhbnNhY3Rpb24nCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":1154,"slug":"commit-prepared","name":"commit_prepared","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"transactionId","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"PreparedTransactionFinalStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Transaction","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIENPTU1JVCBQUkVQQVJFRCBidWlsZGVyLgogKgogKiBFeGFtcGxlOiBjb21taXRfcHJlcGFyZWQoJ215X3RyYW5zYWN0aW9uJykKICogUHJvZHVjZXM6IENPTU1JVCBQUkVQQVJFRCAnbXlfdHJhbnNhY3Rpb24nCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":1166,"slug":"rollback-prepared","name":"rollback_prepared","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"transactionId","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"PreparedTransactionFinalStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Transaction","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFJPTExCQUNLIFBSRVBBUkVEIGJ1aWxkZXIuCiAqCiAqIEV4YW1wbGU6IHJvbGxiYWNrX3ByZXBhcmVkKCdteV90cmFuc2FjdGlvbicpCiAqIFByb2R1Y2VzOiBST0xMQkFDSyBQUkVQQVJFRCAnbXlfdHJhbnNhY3Rpb24nCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":1189,"slug":"declare-cursor","name":"declare_cursor","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"cursorName","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"query","type":[{"name":"SelectFinalStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Select","is_nullable":false,"is_variadic":false},{"name":"Sql","namespace":"Flow\\PostgreSql\\QueryBuilder","is_nullable":false,"is_variadic":false},{"name":"ParsedQuery","namespace":"Flow\\PostgreSql","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"DeclareCursorOptionsStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Cursor","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIERlY2xhcmUgYSBzZXJ2ZXItc2lkZSBjdXJzb3IgZm9yIGEgcXVlcnkuCiAqCiAqIEN1cnNvcnMgbXVzdCBiZSBkZWNsYXJlZCB3aXRoaW4gYSB0cmFuc2FjdGlvbiBhbmQgcHJvdmlkZSBtZW1vcnktZWZmaWNpZW50CiAqIGl0ZXJhdGlvbiBvdmVyIGxhcmdlIHJlc3VsdCBzZXRzIHZpYSBGRVRDSCBjb21tYW5kcy4KICoKICogRXhhbXBsZSB3aXRoIHF1ZXJ5IGJ1aWxkZXI6CiAqICAgZGVjbGFyZV9jdXJzb3IoJ215X2N1cnNvcicsIHNlbGVjdChzdGFyKCkpLT5mcm9tKHRhYmxlKCd1c2VycycpKSktPm5vU2Nyb2xsKCkKICogICBQcm9kdWNlczogREVDTEFSRSBteV9jdXJzb3IgTk8gU0NST0xMIENVUlNPUiBGT1IgU0VMRUNUICogRlJPTSB1c2VycwogKgogKiBFeGFtcGxlIHdpdGggcmF3IFNRTDoKICogICBkZWNsYXJlX2N1cnNvcignbXlfY3Vyc29yJywgJ1NFTEVDVCAqIEZST00gdXNlcnMgV0hFUkUgYWN0aXZlID0gdHJ1ZScpLT53aXRoSG9sZCgpCiAqICAgUHJvZHVjZXM6IERFQ0xBUkUgbXlfY3Vyc29yIE5PIFNDUk9MTCBDVVJTT1IgV0lUSCBIT0xEIEZPUiBTRUxFQ1QgKiBGUk9NIHVzZXJzIFdIRVJFIGFjdGl2ZSA9IHRydWUKICoKICogQHBhcmFtIHN0cmluZyAkY3Vyc29yTmFtZSBVbmlxdWUgY3Vyc29yIG5hbWUKICogQHBhcmFtIFBhcnNlZFF1ZXJ5fFNlbGVjdEZpbmFsU3RlcHxTcWx8c3RyaW5nICRxdWVyeSBRdWVyeSB0byBpdGVyYXRlIG92ZXIKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":1214,"slug":"fetch","name":"fetch","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"cursorName","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"FetchCursorBuilder","namespace":"Flow\\PostgreSql\\QueryBuilder\\Cursor","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEZldGNoIHJvd3MgZnJvbSBhIGN1cnNvci4KICoKICogRXhhbXBsZTogZmV0Y2goJ215X2N1cnNvcicpLT5mb3J3YXJkKDEwMCkKICogUHJvZHVjZXM6IEZFVENIIEZPUldBUkQgMTAwIG15X2N1cnNvcgogKgogKiBFeGFtcGxlOiBmZXRjaCgnbXlfY3Vyc29yJyktPmFsbCgpCiAqIFByb2R1Y2VzOiBGRVRDSCBBTEwgbXlfY3Vyc29yCiAqCiAqIEBwYXJhbSBzdHJpbmcgJGN1cnNvck5hbWUgQ3Vyc29yIHRvIGZldGNoIGZyb20KICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/query.php","start_line_in_file":1231,"slug":"close-cursor","name":"close_cursor","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"cursorName","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"CloseCursorFinalStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Cursor","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENsb3NlIGEgY3Vyc29yLgogKgogKiBFeGFtcGxlOiBjbG9zZV9jdXJzb3IoJ215X2N1cnNvcicpCiAqIFByb2R1Y2VzOiBDTE9TRSBteV9jdXJzb3IKICoKICogRXhhbXBsZTogY2xvc2VfY3Vyc29yKCkgLSBjbG9zZXMgYWxsIGN1cnNvcnMKICogUHJvZHVjZXM6IENMT1NFIEFMTAogKgogKiBAcGFyYW0gbnVsbHxzdHJpbmcgJGN1cnNvck5hbWUgQ3Vyc29yIHRvIGNsb3NlLCBvciBudWxsIHRvIGNsb3NlIGFsbAogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/condition.php","start_line_in_file":42,"slug":"eq","name":"eq","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"left","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"right","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Comparison","namespace":"Flow\\PostgreSql\\QueryBuilder\\Condition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBlcXVhbGl0eSBjb21wYXJpc29uIChjb2x1bW4gPSB2YWx1ZSkuCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/condition.php","start_line_in_file":55,"slug":"ne","name":"ne","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"left","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"right","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Comparison","namespace":"Flow\\PostgreSql\\QueryBuilder\\Condition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIG5vdC1lcXVhbCBjb21wYXJpc29uIChjb2x1bW4gIT0gdmFsdWUpLgogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/condition.php","start_line_in_file":68,"slug":"lt","name":"lt","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"left","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"right","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Comparison","namespace":"Flow\\PostgreSql\\QueryBuilder\\Condition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIGxlc3MtdGhhbiBjb21wYXJpc29uIChjb2x1bW4gPCB2YWx1ZSkuCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/condition.php","start_line_in_file":81,"slug":"le","name":"le","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"left","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"right","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Comparison","namespace":"Flow\\PostgreSql\\QueryBuilder\\Condition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIGxlc3MtdGhhbi1vci1lcXVhbCBjb21wYXJpc29uIChjb2x1bW4gPD0gdmFsdWUpLgogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/condition.php","start_line_in_file":94,"slug":"gt","name":"gt","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"left","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"right","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Comparison","namespace":"Flow\\PostgreSql\\QueryBuilder\\Condition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIGdyZWF0ZXItdGhhbiBjb21wYXJpc29uIChjb2x1bW4gPiB2YWx1ZSkuCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/condition.php","start_line_in_file":107,"slug":"ge","name":"ge","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"left","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"right","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Comparison","namespace":"Flow\\PostgreSql\\QueryBuilder\\Condition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIGdyZWF0ZXItdGhhbi1vci1lcXVhbCBjb21wYXJpc29uIChjb2x1bW4gPj0gdmFsdWUpLgogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/condition.php","start_line_in_file":120,"slug":"between","name":"between","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"expr","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"low","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"high","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"not","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"Between","namespace":"Flow\\PostgreSql\\QueryBuilder\\Condition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIEJFVFdFRU4gY29uZGl0aW9uLgogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/condition.php","start_line_in_file":139,"slug":"in","name":"in_","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"expr","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"values","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"In","namespace":"Flow\\PostgreSql\\QueryBuilder\\Condition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBJTiBjb25kaXRpb24uCiAqCiAqIEBwYXJhbSBFeHByZXNzaW9ufHN0cmluZyAkZXhwciBFeHByZXNzaW9uIHRvIGNoZWNrCiAqIEBwYXJhbSBsaXN0PEV4cHJlc3Npb24+ICR2YWx1ZXMgTGlzdCBvZiB2YWx1ZXMgKG11c3QgYmUgbm9uLWVtcHR5KQogKgogKiBAdGhyb3dzIFxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24gd2hlbiB2YWx1ZXMgYXJyYXkgaXMgZW1wdHkKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/condition.php","start_line_in_file":156,"slug":"is-null","name":"is_null","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"expr","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"not","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"IsNull","namespace":"Flow\\PostgreSql\\QueryBuilder\\Condition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBJUyBOVUxMIGNvbmRpdGlvbi4KICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/condition.php","start_line_in_file":165,"slug":"like","name":"like","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"expr","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"pattern","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"caseInsensitive","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"negated","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"Like","namespace":"Flow\\PostgreSql\\QueryBuilder\\Condition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIExJS0UgY29uZGl0aW9uLgogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/condition.php","start_line_in_file":183,"slug":"similar-to","name":"similar_to","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"expr","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"pattern","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"SimilarTo","namespace":"Flow\\PostgreSql\\QueryBuilder\\Condition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFNJTUlMQVIgVE8gY29uZGl0aW9uLgogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/condition.php","start_line_in_file":195,"slug":"distinct-from","name":"distinct_from","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"left","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"right","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"not","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"IsDistinctFrom","namespace":"Flow\\PostgreSql\\QueryBuilder\\Condition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBJUyBESVNUSU5DVCBGUk9NIGNvbmRpdGlvbi4KICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/condition.php","start_line_in_file":208,"slug":"exists","name":"exists","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"subquery","type":[{"name":"SelectFinalStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Select","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Exists","namespace":"Flow\\PostgreSql\\QueryBuilder\\Condition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBFWElTVFMgY29uZGl0aW9uLgogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/condition.php","start_line_in_file":223,"slug":"any","name":"any_","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"left","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"operator","type":[{"name":"ComparisonOperator","namespace":"Flow\\PostgreSql\\QueryBuilder\\Condition","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"arrayOrSubquery","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"SelectFinalStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Select","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Any","namespace":"Flow\\PostgreSql\\QueryBuilder\\Condition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBBTlkgY29uZGl0aW9uIHdpdGggYSBzdWJxdWVyeSBvciBhcnJheSBleHByZXNzaW9uLgogKgogKiBFeGFtcGxlOiBhbnlfKGNvbCgnaWQnKSwgQ29tcGFyaXNvbk9wZXJhdG9yOjpFUSwgc2VsZWN0KGNvbCgndXNlcl9pZCcpKS0+ZnJvbSh0YWJsZSgnb3JkZXJzJykpKQogKiBFeGFtcGxlOiBhbnlfKGNvbCgnYXR0bnVtJywgJ2EnKSwgQ29tcGFyaXNvbk9wZXJhdG9yOjpFUSwgY29sKCdjb25rZXknLCAnY29uJykpCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/condition.php","start_line_in_file":243,"slug":"all","name":"all_","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"left","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"operator","type":[{"name":"ComparisonOperator","namespace":"Flow\\PostgreSql\\QueryBuilder\\Condition","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"arrayOrSubquery","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"SelectFinalStep","namespace":"Flow\\PostgreSql\\QueryBuilder\\Select","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"All","namespace":"Flow\\PostgreSql\\QueryBuilder\\Condition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBBTEwgY29uZGl0aW9uIHdpdGggYSBzdWJxdWVyeSBvciBhcnJheSBleHByZXNzaW9uLgogKgogKiBFeGFtcGxlOiBhbGxfKGNvbCgnaWQnKSwgQ29tcGFyaXNvbk9wZXJhdG9yOjpFUSwgc2VsZWN0KGNvbCgndXNlcl9pZCcpKS0+ZnJvbSh0YWJsZSgnb3JkZXJzJykpKQogKiBFeGFtcGxlOiBhbGxfKGNvbCgndmFsdWUnKSwgQ29tcGFyaXNvbk9wZXJhdG9yOjpHVCwgY29sKCd0aHJlc2hvbGRzJykpCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/condition.php","start_line_in_file":262,"slug":"is-true","name":"is_true","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"expr","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"BooleanCondition","namespace":"Flow\\PostgreSql\\QueryBuilder\\Condition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIFdyYXAgYW4gZXhwcmVzc2lvbiBhcyBhIGJvb2xlYW4gY29uZGl0aW9uIGZvciB1c2UgaW4gV0hFUkUvSEFWSU5HL0pPSU4gT04uCiAqCiAqIEV4YW1wbGU6IGlzX3RydWUoY29sKCdpc19hY3RpdmUnKSkg4oCUIHVzZXMgYSBib29sZWFuIGNvbHVtbiBpbiBXSEVSRSBjbGF1c2UuCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/condition.php","start_line_in_file":274,"slug":"not-like","name":"not_like","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"expr","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"pattern","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"caseInsensitive","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"Like","namespace":"Flow\\PostgreSql\\QueryBuilder\\Condition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIE5PVCBMSUtFIGNvbmRpdGlvbi4KICoKICogRXhhbXBsZTogbm90X2xpa2UoY29sKCduYW1lJyksIGxpdGVyYWwoJ3BnXyUnKSkKICogUHJvZHVjZXM6IG5hbWUgTk9UIExJS0UgJ3BnXyUnCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/condition.php","start_line_in_file":302,"slug":"conditions","name":"conditions","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"ConditionBuilder","namespace":"Flow\\PostgreSql\\QueryBuilder\\Condition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIGNvbmRpdGlvbiBidWlsZGVyIGZvciBmbHVlbnQgY29uZGl0aW9uIGNvbXBvc2l0aW9uLgogKgogKiBUaGlzIGJ1aWxkZXIgYWxsb3dzIGluY3JlbWVudGFsIGNvbmRpdGlvbiBidWlsZGluZyB3aXRoIGEgZmx1ZW50IEFQSToKICoKICogYGBgcGhwCiAqICRidWlsZGVyID0gY29uZGl0aW9ucygpOwogKgogKiBpZiAoJGhhc0ZpbHRlcikgewogKiAgICAgJGJ1aWxkZXIgPSAkYnVpbGRlci0+YW5kKGVxKGNvbCgnc3RhdHVzJyksIGxpdGVyYWwoJ2FjdGl2ZScpKSk7CiAqIH0KICoKICogaWYgKCEkYnVpbGRlci0+aXNFbXB0eSgpKSB7CiAqICAgICAkcXVlcnkgPSBzZWxlY3QoKS0+ZnJvbSh0YWJsZSgndXNlcnMnKSktPndoZXJlKCRidWlsZGVyKTsKICogfQogKiBgYGAKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/condition.php","start_line_in_file":313,"slug":"and","name":"and_","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"conditions","type":[{"name":"Condition","namespace":"Flow\\PostgreSql\\QueryBuilder\\Condition","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"AndCondition","namespace":"Flow\\PostgreSql\\QueryBuilder\\Condition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENvbWJpbmUgY29uZGl0aW9ucyB3aXRoIEFORC4KICoKICogQHBhcmFtIENvbmRpdGlvbiAuLi4kY29uZGl0aW9ucyBDb25kaXRpb25zIHRvIGNvbWJpbmUKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/condition.php","start_line_in_file":324,"slug":"or","name":"or_","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"conditions","type":[{"name":"Condition","namespace":"Flow\\PostgreSql\\QueryBuilder\\Condition","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"OrCondition","namespace":"Flow\\PostgreSql\\QueryBuilder\\Condition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENvbWJpbmUgY29uZGl0aW9ucyB3aXRoIE9SLgogKgogKiBAcGFyYW0gQ29uZGl0aW9uIC4uLiRjb25kaXRpb25zIENvbmRpdGlvbnMgdG8gY29tYmluZQogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/condition.php","start_line_in_file":336,"slug":"not","name":"not_","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"expression","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"NotCondition","namespace":"Flow\\PostgreSql\\QueryBuilder\\Condition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIE5lZ2F0ZSBhIGNvbmRpdGlvbiBvciBleHByZXNzaW9uIHdpdGggTk9ULgogKgogKiBBY2NlcHRzIGJvdGggQ29uZGl0aW9uIGFuZCBFeHByZXNzaW9uIOKAlCBOT1QgYWx3YXlzIHByb2R1Y2VzIGEgYm9vbGVhbiByZXN1bHQuCiAqIENhbiBiZSB1c2VkIGluIFdIRVJFIGNsYXVzZXMgYW5kIFNFTEVDVCBsaXN0cyAodmlhIC0+YXMoJ2FsaWFzJykpLgogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/condition.php","start_line_in_file":348,"slug":"json-contains","name":"json_contains","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"left","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"right","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"OperatorCondition","namespace":"Flow\\PostgreSql\\QueryBuilder\\Condition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIEpTT05CIGNvbnRhaW5zIGNvbmRpdGlvbiAoQD4pLgogKgogKiBFeGFtcGxlOiBqc29uX2NvbnRhaW5zKGNvbCgnbWV0YWRhdGEnKSwgbGl0ZXJhbF9qc29uKCd7ImNhdGVnb3J5IjogImVsZWN0cm9uaWNzIn0nKSkKICogUHJvZHVjZXM6IG1ldGFkYXRhIEA+ICd7ImNhdGVnb3J5IjogImVsZWN0cm9uaWNzIn0nCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/condition.php","start_line_in_file":364,"slug":"json-contained-by","name":"json_contained_by","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"left","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"right","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"OperatorCondition","namespace":"Flow\\PostgreSql\\QueryBuilder\\Condition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIEpTT05CIGlzIGNvbnRhaW5lZCBieSBjb25kaXRpb24gKDxAKS4KICoKICogRXhhbXBsZToganNvbl9jb250YWluZWRfYnkoY29sKCdtZXRhZGF0YScpLCBsaXRlcmFsX2pzb24oJ3siY2F0ZWdvcnkiOiAiZWxlY3Ryb25pY3MiLCAicHJpY2UiOiAxMDB9JykpCiAqIFByb2R1Y2VzOiBtZXRhZGF0YSA8QCAneyJjYXRlZ29yeSI6ICJlbGVjdHJvbmljcyIsICJwcmljZSI6IDEwMH0nCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/condition.php","start_line_in_file":381,"slug":"json-get","name":"json_get","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"expr","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"key","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"BinaryExpression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIEpTT04gZmllbGQgYWNjZXNzIGV4cHJlc3Npb24gKC0+KS4KICogUmV0dXJucyBKU09OLgogKgogKiBFeGFtcGxlOiBqc29uX2dldChjb2woJ21ldGFkYXRhJyksIGxpdGVyYWxfc3RyaW5nKCdjYXRlZ29yeScpKQogKiBQcm9kdWNlczogbWV0YWRhdGEgLT4gJ2NhdGVnb3J5JwogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/condition.php","start_line_in_file":398,"slug":"json-get-text","name":"json_get_text","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"expr","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"key","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"BinaryExpression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIEpTT04gZmllbGQgYWNjZXNzIGV4cHJlc3Npb24gKC0+PikuCiAqIFJldHVybnMgdGV4dC4KICoKICogRXhhbXBsZToganNvbl9nZXRfdGV4dChjb2woJ21ldGFkYXRhJyksIGxpdGVyYWxfc3RyaW5nKCduYW1lJykpCiAqIFByb2R1Y2VzOiBtZXRhZGF0YSAtPj4gJ25hbWUnCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/condition.php","start_line_in_file":415,"slug":"json-path","name":"json_path","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"expr","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"path","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"BinaryExpression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIEpTT04gcGF0aCBhY2Nlc3MgZXhwcmVzc2lvbiAoIz4pLgogKiBSZXR1cm5zIEpTT04uCiAqCiAqIEV4YW1wbGU6IGpzb25fcGF0aChjb2woJ21ldGFkYXRhJyksIGxpdGVyYWxfc3RyaW5nKCd7Y2F0ZWdvcnksbmFtZX0nKSkKICogUHJvZHVjZXM6IG1ldGFkYXRhICM+ICd7Y2F0ZWdvcnksbmFtZX0nCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/condition.php","start_line_in_file":432,"slug":"json-path-text","name":"json_path_text","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"expr","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"path","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"BinaryExpression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIEpTT04gcGF0aCBhY2Nlc3MgZXhwcmVzc2lvbiAoIz4+KS4KICogUmV0dXJucyB0ZXh0LgogKgogKiBFeGFtcGxlOiBqc29uX3BhdGhfdGV4dChjb2woJ21ldGFkYXRhJyksIGxpdGVyYWxfc3RyaW5nKCd7Y2F0ZWdvcnksbmFtZX0nKSkKICogUHJvZHVjZXM6IG1ldGFkYXRhICM+PiAne2NhdGVnb3J5LG5hbWV9JwogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/condition.php","start_line_in_file":448,"slug":"json-exists","name":"json_exists","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"expr","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"key","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"OperatorCondition","namespace":"Flow\\PostgreSql\\QueryBuilder\\Condition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIEpTT05CIGtleSBleGlzdHMgY29uZGl0aW9uICg\/KS4KICoKICogRXhhbXBsZToganNvbl9leGlzdHMoY29sKCdtZXRhZGF0YScpLCBsaXRlcmFsX3N0cmluZygnY2F0ZWdvcnknKSkKICogUHJvZHVjZXM6IG1ldGFkYXRhID8gJ2NhdGVnb3J5JwogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/condition.php","start_line_in_file":464,"slug":"json-exists-any","name":"json_exists_any","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"expr","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"keys","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"OperatorCondition","namespace":"Flow\\PostgreSql\\QueryBuilder\\Condition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIEpTT05CIGFueSBrZXkgZXhpc3RzIGNvbmRpdGlvbiAoP3wpLgogKgogKiBFeGFtcGxlOiBqc29uX2V4aXN0c19hbnkoY29sKCdtZXRhZGF0YScpLCBhcnJheV9leHByKFtsaXRlcmFsKCdjYXRlZ29yeScpLCBsaXRlcmFsKCduYW1lJyldKSkKICogUHJvZHVjZXM6IG1ldGFkYXRhID98IGFycmF5WydjYXRlZ29yeScsICduYW1lJ10KICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/condition.php","start_line_in_file":480,"slug":"json-exists-all","name":"json_exists_all","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"expr","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"keys","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"OperatorCondition","namespace":"Flow\\PostgreSql\\QueryBuilder\\Condition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIEpTT05CIGFsbCBrZXlzIGV4aXN0IGNvbmRpdGlvbiAoPyYpLgogKgogKiBFeGFtcGxlOiBqc29uX2V4aXN0c19hbGwoY29sKCdtZXRhZGF0YScpLCBhcnJheV9leHByKFtsaXRlcmFsKCdjYXRlZ29yeScpLCBsaXRlcmFsKCduYW1lJyldKSkKICogUHJvZHVjZXM6IG1ldGFkYXRhID8mIGFycmF5WydjYXRlZ29yeScsICduYW1lJ10KICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/condition.php","start_line_in_file":496,"slug":"array-contains","name":"array_contains","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"left","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"right","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"OperatorCondition","namespace":"Flow\\PostgreSql\\QueryBuilder\\Condition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBhcnJheSBjb250YWlucyBjb25kaXRpb24gKEA+KS4KICoKICogRXhhbXBsZTogYXJyYXlfY29udGFpbnMoY29sKCd0YWdzJyksIGFycmF5X2V4cHIoW2xpdGVyYWwoJ3NhbGUnKV0pKQogKiBQcm9kdWNlczogdGFncyBAPiBBUlJBWVsnc2FsZSddCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/condition.php","start_line_in_file":512,"slug":"array-contained-by","name":"array_contained_by","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"left","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"right","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"OperatorCondition","namespace":"Flow\\PostgreSql\\QueryBuilder\\Condition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBhcnJheSBpcyBjb250YWluZWQgYnkgY29uZGl0aW9uICg8QCkuCiAqCiAqIEV4YW1wbGU6IGFycmF5X2NvbnRhaW5lZF9ieShjb2woJ3RhZ3MnKSwgYXJyYXlfZXhwcihbbGl0ZXJhbCgnc2FsZScpLCBsaXRlcmFsKCdmZWF0dXJlZCcpLCBsaXRlcmFsKCduZXcnKV0pKQogKiBQcm9kdWNlczogdGFncyA8QCBBUlJBWVsnc2FsZScsICdmZWF0dXJlZCcsICduZXcnXQogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/condition.php","start_line_in_file":528,"slug":"array-overlap","name":"array_overlap","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"left","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"right","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"OperatorCondition","namespace":"Flow\\PostgreSql\\QueryBuilder\\Condition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBhcnJheSBvdmVybGFwIGNvbmRpdGlvbiAoJiYpLgogKgogKiBFeGFtcGxlOiBhcnJheV9vdmVybGFwKGNvbCgndGFncycpLCBhcnJheV9leHByKFtsaXRlcmFsKCdzYWxlJyksIGxpdGVyYWwoJ2ZlYXR1cmVkJyldKSkKICogUHJvZHVjZXM6IHRhZ3MgJiYgQVJSQVlbJ3NhbGUnLCAnZmVhdHVyZWQnXQogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/condition.php","start_line_in_file":546,"slug":"regex-match","name":"regex_match","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"expr","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"pattern","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"OperatorCondition","namespace":"Flow\\PostgreSql\\QueryBuilder\\Condition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFBPU0lYIHJlZ2V4IG1hdGNoIGNvbmRpdGlvbiAofikuCiAqIENhc2Utc2Vuc2l0aXZlLgogKgogKiBFeGFtcGxlOiByZWdleF9tYXRjaChjb2woJ2VtYWlsJyksIGxpdGVyYWxfc3RyaW5nKCcuKkBnbWFpbFxcLmNvbScpKQogKgogKiBQcm9kdWNlczogZW1haWwgfiAnLipAZ21haWxcLmNvbScKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/condition.php","start_line_in_file":564,"slug":"regex-imatch","name":"regex_imatch","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"expr","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"pattern","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"OperatorCondition","namespace":"Flow\\PostgreSql\\QueryBuilder\\Condition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFBPU0lYIHJlZ2V4IG1hdGNoIGNvbmRpdGlvbiAofiopLgogKiBDYXNlLWluc2Vuc2l0aXZlLgogKgogKiBFeGFtcGxlOiByZWdleF9pbWF0Y2goY29sKCdlbWFpbCcpLCBsaXRlcmFsX3N0cmluZygnLipAZ21haWxcXC5jb20nKSkKICoKICogUHJvZHVjZXM6IGVtYWlsIH4qICcuKkBnbWFpbFwuY29tJwogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/condition.php","start_line_in_file":582,"slug":"not-regex-match","name":"not_regex_match","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"expr","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"pattern","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"OperatorCondition","namespace":"Flow\\PostgreSql\\QueryBuilder\\Condition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFBPU0lYIHJlZ2V4IG5vdCBtYXRjaCBjb25kaXRpb24gKCF+KS4KICogQ2FzZS1zZW5zaXRpdmUuCiAqCiAqIEV4YW1wbGU6IG5vdF9yZWdleF9tYXRjaChjb2woJ2VtYWlsJyksIGxpdGVyYWxfc3RyaW5nKCcuKkBzcGFtXFwuY29tJykpCiAqCiAqIFByb2R1Y2VzOiBlbWFpbCAhfiAnLipAc3BhbVwuY29tJwogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/condition.php","start_line_in_file":600,"slug":"not-regex-imatch","name":"not_regex_imatch","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"expr","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"pattern","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"OperatorCondition","namespace":"Flow\\PostgreSql\\QueryBuilder\\Condition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFBPU0lYIHJlZ2V4IG5vdCBtYXRjaCBjb25kaXRpb24gKCF+KikuCiAqIENhc2UtaW5zZW5zaXRpdmUuCiAqCiAqIEV4YW1wbGU6IG5vdF9yZWdleF9pbWF0Y2goY29sKCdlbWFpbCcpLCBsaXRlcmFsX3N0cmluZygnLipAc3BhbVxcLmNvbScpKQogKgogKiBQcm9kdWNlczogZW1haWwgIX4qICcuKkBzcGFtXC5jb20nCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/condition.php","start_line_in_file":616,"slug":"text-search-match","name":"text_search_match","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"document","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"query","type":[{"name":"Expression","namespace":"Flow\\PostgreSql\\QueryBuilder\\Expression","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"OperatorCondition","namespace":"Flow\\PostgreSql\\QueryBuilder\\Condition","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIGZ1bGwtdGV4dCBzZWFyY2ggbWF0Y2ggY29uZGl0aW9uIChAQCkuCiAqCiAqIEV4YW1wbGU6IHRleHRfc2VhcmNoX21hdGNoKGNvbCgnZG9jdW1lbnQnKSwgZnVuYygndG9fdHNxdWVyeScsIFtsaXRlcmFsKCdlbmdsaXNoJyksIGxpdGVyYWwoJ2hlbGxvICYgd29ybGQnKV0pKQogKiBQcm9kdWNlczogZG9jdW1lbnQgQEAgdG9fdHNxdWVyeSgnZW5nbGlzaCcsICdoZWxsbyAmIHdvcmxkJykKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/parser.php","start_line_in_file":33,"slug":"sql-parser","name":"sql_parser","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"Parser","namespace":"Flow\\PostgreSql","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/parser.php","start_line_in_file":39,"slug":"sql-parse","name":"sql_parse","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"sql","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ParsedQuery","namespace":"Flow\\PostgreSql","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/parser.php","start_line_in_file":49,"slug":"sql-fingerprint","name":"sql_fingerprint","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"sql","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIFJldHVybnMgYSBmaW5nZXJwcmludCBvZiB0aGUgZ2l2ZW4gU1FMIHF1ZXJ5LgogKiBMaXRlcmFsIHZhbHVlcyBhcmUgbm9ybWFsaXplZCBzbyB0aGV5IHdvbid0IGFmZmVjdCB0aGUgZmluZ2VycHJpbnQuCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/parser.php","start_line_in_file":60,"slug":"sql-normalize","name":"sql_normalize","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"sql","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIE5vcm1hbGl6ZSBTUUwgcXVlcnkgYnkgcmVwbGFjaW5nIGxpdGVyYWwgdmFsdWVzIGFuZCBuYW1lZCBwYXJhbWV0ZXJzIHdpdGggcG9zaXRpb25hbCBwYXJhbWV0ZXJzLgogKiBXSEVSRSBpZCA9IDppZCB3aWxsIGJlIGNoYW5nZWQgaW50byBXSEVSRSBpZCA9ICQxCiAqIFdIRVJFIGlkID0gMSB3aWxsIGJlIGNoYW5nZWQgaW50byBXSEVSRSBpZCA9ICQxLgogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/parser.php","start_line_in_file":70,"slug":"sql-normalize-utility","name":"sql_normalize_utility","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"sql","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIE5vcm1hbGl6ZSB1dGlsaXR5IFNRTCBzdGF0ZW1lbnRzIChEREwgbGlrZSBDUkVBVEUsIEFMVEVSLCBEUk9QKS4KICogVGhpcyBoYW5kbGVzIERETCBzdGF0ZW1lbnRzIGRpZmZlcmVudGx5IGZyb20gcGdfbm9ybWFsaXplKCkgd2hpY2ggaXMgb3B0aW1pemVkIGZvciBETUwuCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/parser.php","start_line_in_file":81,"slug":"sql-split","name":"sql_split","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"sql","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIFNwbGl0IHN0cmluZyB3aXRoIG11bHRpcGxlIFNRTCBzdGF0ZW1lbnRzIGludG8gYXJyYXkgb2YgaW5kaXZpZHVhbCBzdGF0ZW1lbnRzLgogKgogKiBAcmV0dXJuIGFycmF5PHN0cmluZz4KICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/parser.php","start_line_in_file":90,"slug":"sql-deparse-options","name":"sql_deparse_options","namespace":"Flow\\PostgreSql\\DSL","parameters":[],"return_type":[{"name":"DeparseOptions","namespace":"Flow\\PostgreSql","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBEZXBhcnNlT3B0aW9ucyBmb3IgY29uZmlndXJpbmcgU1FMIGZvcm1hdHRpbmcuCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/parser.php","start_line_in_file":104,"slug":"sql-deparse","name":"sql_deparse","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"query","type":[{"name":"ParsedQuery","namespace":"Flow\\PostgreSql","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"options","type":[{"name":"DeparseOptions","namespace":"Flow\\PostgreSql","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENvbnZlcnQgYSBQYXJzZWRRdWVyeSBBU1QgYmFjayB0byBTUUwgc3RyaW5nLgogKgogKiBXaGVuIGNhbGxlZCB3aXRob3V0IG9wdGlvbnMsIHJldHVybnMgdGhlIFNRTCBhcyBhIHNpbXBsZSBzdHJpbmcuCiAqIFdoZW4gY2FsbGVkIHdpdGggRGVwYXJzZU9wdGlvbnMsIGFwcGxpZXMgZm9ybWF0dGluZyAocHJldHR5LXByaW50aW5nLCBpbmRlbnRhdGlvbiwgZXRjLikuCiAqCiAqIEB0aHJvd3MgXFJ1bnRpbWVFeGNlcHRpb24gaWYgZGVwYXJzaW5nIGZhaWxzCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/parser.php","start_line_in_file":120,"slug":"sql-format","name":"sql_format","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"sql","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"options","type":[{"name":"DeparseOptions","namespace":"Flow\\PostgreSql","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIFBhcnNlIGFuZCBmb3JtYXQgU1FMIHF1ZXJ5IHdpdGggcHJldHR5IHByaW50aW5nLgogKgogKiBUaGlzIGlzIGEgY29udmVuaWVuY2UgZnVuY3Rpb24gdGhhdCBwYXJzZXMgU1FMIGFuZCByZXR1cm5zIGl0IGZvcm1hdHRlZC4KICoKICogQHBhcmFtIHN0cmluZyAkc3FsIFRoZSBTUUwgcXVlcnkgdG8gZm9ybWF0CiAqIEBwYXJhbSBudWxsfERlcGFyc2VPcHRpb25zICRvcHRpb25zIEZvcm1hdHRpbmcgb3B0aW9ucyAoZGVmYXVsdHMgdG8gcHJldHR5LXByaW50IGVuYWJsZWQpCiAqCiAqIEB0aHJvd3MgXFJ1bnRpbWVFeGNlcHRpb24gaWYgcGFyc2luZyBvciBkZXBhcnNpbmcgZmFpbHMKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/parser.php","start_line_in_file":132,"slug":"sql-summary","name":"sql_summary","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"sql","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"options","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"0"},{"name":"truncateLimit","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"0"}],"return_type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEdlbmVyYXRlIGEgc3VtbWFyeSBvZiBwYXJzZWQgcXVlcmllcyBpbiBwcm90b2J1ZiBmb3JtYXQuCiAqIFVzZWZ1bCBmb3IgcXVlcnkgbW9uaXRvcmluZyBhbmQgbG9nZ2luZyB3aXRob3V0IGZ1bGwgQVNUIG92ZXJoZWFkLgogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/parser.php","start_line_in_file":147,"slug":"sql-to-paginated-query","name":"sql_to_paginated_query","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"sql","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"limit","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"offset","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"0"}],"return_type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIFRyYW5zZm9ybSBhIFNRTCBxdWVyeSBpbnRvIGEgcGFnaW5hdGVkIHF1ZXJ5IHdpdGggTElNSVQgYW5kIE9GRlNFVC4KICoKICogQHBhcmFtIHN0cmluZyAkc3FsIFRoZSBTUUwgcXVlcnkgdG8gcGFnaW5hdGUKICogQHBhcmFtIGludCAkbGltaXQgTWF4aW11bSBudW1iZXIgb2Ygcm93cyB0byByZXR1cm4KICogQHBhcmFtIGludCAkb2Zmc2V0IE51bWJlciBvZiByb3dzIHRvIHNraXAgKHJlcXVpcmVzIE9SREVSIEJZIGluIHF1ZXJ5KQogKgogKiBAcmV0dXJuIHN0cmluZyBUaGUgcGFnaW5hdGVkIFNRTCBxdWVyeQogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/parser.php","start_line_in_file":164,"slug":"sql-to-limited-query","name":"sql_to_limited_query","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"sql","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"limit","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIFRyYW5zZm9ybSBhIFNRTCBxdWVyeSB0byBsaW1pdCByZXN1bHRzIHRvIGEgc3BlY2lmaWMgbnVtYmVyIG9mIHJvd3MuCiAqCiAqIEBwYXJhbSBzdHJpbmcgJHNxbCBUaGUgU1FMIHF1ZXJ5IHRvIGxpbWl0CiAqIEBwYXJhbSBpbnQgJGxpbWl0IE1heGltdW0gbnVtYmVyIG9mIHJvd3MgdG8gcmV0dXJuCiAqCiAqIEByZXR1cm4gc3RyaW5nIFRoZSBsaW1pdGVkIFNRTCBxdWVyeQogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/parser.php","start_line_in_file":183,"slug":"sql-to-count-query","name":"sql_to_count_query","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"sql","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIFRyYW5zZm9ybSBhIFNRTCBxdWVyeSBpbnRvIGEgQ09VTlQgcXVlcnkgZm9yIHBhZ2luYXRpb24uCiAqCiAqIFdyYXBzIHRoZSBxdWVyeSBpbjogU0VMRUNUIENPVU5UKCopIEZST00gKC4uLikgQVMgX2NvdW50X3N1YnEKICogUmVtb3ZlcyBPUkRFUiBCWSBhbmQgTElNSVQvT0ZGU0VUIGZyb20gdGhlIGlubmVyIHF1ZXJ5LgogKgogKiBAcGFyYW0gc3RyaW5nICRzcWwgVGhlIFNRTCBxdWVyeSB0byB0cmFuc2Zvcm0KICoKICogQHJldHVybiBzdHJpbmcgVGhlIENPVU5UIHF1ZXJ5CiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/parser.php","start_line_in_file":205,"slug":"sql-to-keyset-query","name":"sql_to_keyset_query","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"sql","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"limit","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"columns","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"cursor","type":[{"name":"array","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIFRyYW5zZm9ybSBhIFNRTCBxdWVyeSBpbnRvIGEga2V5c2V0IChjdXJzb3ItYmFzZWQpIHBhZ2luYXRlZCBxdWVyeS4KICoKICogTW9yZSBlZmZpY2llbnQgdGhhbiBPRkZTRVQgZm9yIGxhcmdlIGRhdGFzZXRzIC0gdXNlcyBpbmRleGVkIFdIRVJFIGNvbmRpdGlvbnMuCiAqIEF1dG9tYXRpY2FsbHkgZGV0ZWN0cyBleGlzdGluZyBxdWVyeSBwYXJhbWV0ZXJzIGFuZCBhcHBlbmRzIGtleXNldCBwbGFjZWhvbGRlcnMgYXQgdGhlIGVuZC4KICoKICogQHBhcmFtIHN0cmluZyAkc3FsIFRoZSBTUUwgcXVlcnkgdG8gcGFnaW5hdGUgKE9SREVSIEJZIG9wdGlvbmFsOyB3aGVuIHByZXNlbnQgaXQgbXVzdCBlcXVhbCB0aGUga2V5czsgbm8gTElNSVQvT0ZGU0VUKQogKiBAcGFyYW0gaW50ICRsaW1pdCBNYXhpbXVtIG51bWJlciBvZiByb3dzIHRvIHJldHVybgogKiBAcGFyYW0gbGlzdDxLZXlzZXRDb2x1bW4+ICRjb2x1bW5zIENvbHVtbnMgZm9yIGtleXNldCBwYWdpbmF0aW9uIChtdXN0IG1hdGNoIE9SREVSIEJZKQogKiBAcGFyYW0gbnVsbHxsaXN0PGJvb2x8ZmxvYXR8aW50fHN0cmluZz4gJGN1cnNvciBWYWx1ZXMgZnJvbSBsYXN0IHJvdyBvZiBwcmV2aW91cyBwYWdlIChudWxsIGZvciBmaXJzdCBwYWdlKQogKgogKiBAcmV0dXJuIHN0cmluZyBUaGUgcGFnaW5hdGVkIFNRTCBxdWVyeQogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/parser.php","start_line_in_file":220,"slug":"sql-keyset-column","name":"sql_keyset_column","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"column","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"order","type":[{"name":"SortOrder","namespace":"Flow\\PostgreSql\\AST\\Transformers","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\PostgreSql\\AST\\Transformers\\SortOrder::..."}],"return_type":[{"name":"KeysetColumn","namespace":"Flow\\PostgreSql\\AST\\Transformers","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIEtleXNldENvbHVtbiBmb3Iga2V5c2V0IHBhZ2luYXRpb24uCiAqCiAqIEBwYXJhbSBzdHJpbmcgJGNvbHVtbiBDb2x1bW4gbmFtZSAoY2FuIGluY2x1ZGUgdGFibGUgYWxpYXMgbGlrZSAidS5pZCIpCiAqIEBwYXJhbSBTb3J0T3JkZXIgJG9yZGVyIFNvcnQgb3JkZXIgKEFTQyBvciBERVNDKQogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/parser.php","start_line_in_file":229,"slug":"sql-query-columns","name":"sql_query_columns","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"query","type":[{"name":"ParsedQuery","namespace":"Flow\\PostgreSql","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Columns","namespace":"Flow\\PostgreSql\\Extractors","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEV4dHJhY3QgY29sdW1ucyBmcm9tIGEgcGFyc2VkIFNRTCBxdWVyeS4KICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/parser.php","start_line_in_file":238,"slug":"sql-query-tables","name":"sql_query_tables","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"query","type":[{"name":"ParsedQuery","namespace":"Flow\\PostgreSql","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Tables","namespace":"Flow\\PostgreSql\\Extractors","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEV4dHJhY3QgdGFibGVzIGZyb20gYSBwYXJzZWQgU1FMIHF1ZXJ5LgogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/parser.php","start_line_in_file":247,"slug":"sql-query-functions","name":"sql_query_functions","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"query","type":[{"name":"ParsedQuery","namespace":"Flow\\PostgreSql","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Functions","namespace":"Flow\\PostgreSql\\Extractors","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEV4dHJhY3QgZnVuY3Rpb25zIGZyb20gYSBwYXJzZWQgU1FMIHF1ZXJ5LgogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/parser.php","start_line_in_file":256,"slug":"sql-query-order-by","name":"sql_query_order_by","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"query","type":[{"name":"ParsedQuery","namespace":"Flow\\PostgreSql","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"OrderBy","namespace":"Flow\\PostgreSql\\Extractors","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEV4dHJhY3QgT1JERVIgQlkgY2xhdXNlcyBmcm9tIGEgcGFyc2VkIFNRTCBxdWVyeS4KICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/parser.php","start_line_in_file":270,"slug":"sql-query-depth","name":"sql_query_depth","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"sql","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEdldCB0aGUgbWF4aW11bSBuZXN0aW5nIGRlcHRoIG9mIGEgU1FMIHF1ZXJ5LgogKgogKiBFeGFtcGxlOgogKiAtICJTRUxFQ1QgKiBGUk9NIHQiID0+IDEKICogLSAiU0VMRUNUICogRlJPTSAoU0VMRUNUICogRlJPTSB0KSIgPT4gMgogKiAtICJTRUxFQ1QgKiBGUk9NIChTRUxFQ1QgKiBGUk9NIChTRUxFQ1QgKiBGUk9NIHQpKSIgPT4gMwogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/parser.php","start_line_in_file":287,"slug":"sql-to-explain","name":"sql_to_explain","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"sql","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"config","type":[{"name":"ExplainConfig","namespace":"Flow\\PostgreSql\\AST\\Transformers","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIFRyYW5zZm9ybSBhIFNRTCBxdWVyeSBpbnRvIGFuIEVYUExBSU4gcXVlcnkuCiAqCiAqIFJldHVybnMgdGhlIG1vZGlmaWVkIFNRTCB3aXRoIEVYUExBSU4gd3JhcHBlZCBhcm91bmQgaXQuCiAqIERlZmF1bHRzIHRvIEVYUExBSU4gQU5BTFlaRSB3aXRoIEpTT04gZm9ybWF0IGZvciBlYXN5IHBhcnNpbmcuCiAqCiAqIEBwYXJhbSBzdHJpbmcgJHNxbCBUaGUgU1FMIHF1ZXJ5IHRvIGV4cGxhaW4KICogQHBhcmFtIG51bGx8RXhwbGFpbkNvbmZpZyAkY29uZmlnIEVYUExBSU4gY29uZmlndXJhdGlvbiAoZGVmYXVsdHMgdG8gZm9yQW5hbHlzaXMoKSkKICoKICogQHJldHVybiBzdHJpbmcgVGhlIEVYUExBSU4gcXVlcnkKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/parser.php","start_line_in_file":307,"slug":"sql-explain-config","name":"sql_explain_config","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"analyze","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"verbose","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"costs","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"buffers","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"timing","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"format","type":[{"name":"ExplainFormat","namespace":"Flow\\PostgreSql\\QueryBuilder\\Utility","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\PostgreSql\\QueryBuilder\\Utility\\ExplainFormat::..."}],"return_type":[{"name":"ExplainConfig","namespace":"Flow\\PostgreSql\\AST\\Transformers","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBFeHBsYWluQ29uZmlnIGZvciBjdXN0b21pemluZyBFWFBMQUlOIG9wdGlvbnMuCiAqCiAqIEBwYXJhbSBib29sICRhbmFseXplIFdoZXRoZXIgdG8gYWN0dWFsbHkgZXhlY3V0ZSB0aGUgcXVlcnkgKEFOQUxZWkUpCiAqIEBwYXJhbSBib29sICR2ZXJib3NlIEluY2x1ZGUgdmVyYm9zZSBvdXRwdXQKICogQHBhcmFtIGJvb2wgJGNvc3RzIEluY2x1ZGUgY29zdCBlc3RpbWF0ZXMgKGRlZmF1bHQgdHJ1ZSkKICogQHBhcmFtIGJvb2wgJGJ1ZmZlcnMgSW5jbHVkZSBidWZmZXIgdXNhZ2Ugc3RhdGlzdGljcyAocmVxdWlyZXMgYW5hbHl6ZSkKICogQHBhcmFtIGJvb2wgJHRpbWluZyBJbmNsdWRlIHRpbWluZyBpbmZvcm1hdGlvbiAocmVxdWlyZXMgYW5hbHl6ZSkKICogQHBhcmFtIEV4cGxhaW5Gb3JtYXQgJGZvcm1hdCBPdXRwdXQgZm9ybWF0IChKU09OIHJlY29tbWVuZGVkIGZvciBwYXJzaW5nKQogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/parser.php","start_line_in_file":329,"slug":"sql-explain-modifier","name":"sql_explain_modifier","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"config","type":[{"name":"ExplainConfig","namespace":"Flow\\PostgreSql\\AST\\Transformers","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ExplainModifier","namespace":"Flow\\PostgreSql\\AST\\Transformers","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBFeHBsYWluTW9kaWZpZXIgZm9yIHRyYW5zZm9ybWluZyBxdWVyaWVzIGludG8gRVhQTEFJTiBxdWVyaWVzLgogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/parser.php","start_line_in_file":342,"slug":"sql-explain-parse","name":"sql_explain_parse","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"jsonOutput","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Plan","namespace":"Flow\\PostgreSql\\Explain\\Plan","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIFBhcnNlIEVYUExBSU4gSlNPTiBvdXRwdXQgaW50byBhIFBsYW4gb2JqZWN0LgogKgogKiBAcGFyYW0gc3RyaW5nICRqc29uT3V0cHV0IFRoZSBKU09OIG91dHB1dCBmcm9tIEVYUExBSU4gKEZPUk1BVCBKU09OKQogKgogKiBAcmV0dXJuIFBsYW4gVGhlIHBhcnNlZCBleGVjdXRpb24gcGxhbgogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/parser.php","start_line_in_file":355,"slug":"sql-analyze","name":"sql_analyze","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"plan","type":[{"name":"Plan","namespace":"Flow\\PostgreSql\\Explain\\Plan","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"PlanAnalyzer","namespace":"Flow\\PostgreSql\\Explain\\Analyzer","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIHBsYW4gYW5hbHl6ZXIgZm9yIGFuYWx5emluZyBFWFBMQUlOIHBsYW5zLgogKgogKiBAcGFyYW0gUGxhbiAkcGxhbiBUaGUgZXhlY3V0aW9uIHBsYW4gdG8gYW5hbHl6ZQogKgogKiBAcmV0dXJuIFBsYW5BbmFseXplciBUaGUgYW5hbHl6ZXIgZm9yIGV4dHJhY3RpbmcgaW5zaWdodHMKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/client.php","start_line_in_file":46,"slug":"pgsql-connection","name":"pgsql_connection","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"connectionString","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ConnectionParameters","namespace":"Flow\\PostgreSql\\Client","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBjb25uZWN0aW9uIHBhcmFtZXRlcnMgZnJvbSBhIGNvbm5lY3Rpb24gc3RyaW5nLgogKgogKiBBY2NlcHRzIGxpYnBxLXN0eWxlIGNvbm5lY3Rpb24gc3RyaW5nczoKICogLSBLZXktdmFsdWUgZm9ybWF0OiAiaG9zdD1sb2NhbGhvc3QgcG9ydD01NDMyIGRibmFtZT1teWRiIHVzZXI9bXl1c2VyIHBhc3N3b3JkPXNlY3JldCIKICogLSBVUkkgZm9ybWF0OiAicG9zdGdyZXNxbDovL3VzZXI6cGFzc3dvcmRAbG9jYWxob3N0OjU0MzIvZGJuYW1lIgogKgogKiBAZXhhbXBsZQogKiAkcGFyYW1zID0gcGdzcWxfY29ubmVjdGlvbignaG9zdD1sb2NhbGhvc3QgZGJuYW1lPW15ZGInKTsKICogJHBhcmFtcyA9IHBnc3FsX2Nvbm5lY3Rpb24oJ3Bvc3RncmVzcWw6Ly91c2VyOnBhc3NAbG9jYWxob3N0L215ZGInKTsKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/client.php","start_line_in_file":68,"slug":"pgsql-connection-dsn","name":"pgsql_connection_dsn","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"dsn","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ConnectionParameters","namespace":"Flow\\PostgreSql\\Client","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBjb25uZWN0aW9uIHBhcmFtZXRlcnMgZnJvbSBhIERTTiBzdHJpbmcuCiAqCiAqIFBhcnNlcyBzdGFuZGFyZCBQb3N0Z3JlU1FMIERTTiBmb3JtYXQgY29tbW9ubHkgdXNlZCBpbiBlbnZpcm9ubWVudCB2YXJpYWJsZXMKICogKGUuZy4sIERBVEFCQVNFX1VSTCkuIFN1cHBvcnRzIHBvc3RncmVzOi8vLCBwb3N0Z3Jlc3FsOi8vLCBhbmQgcGdzcWw6Ly8gc2NoZW1lcy4KICoKICogQHBhcmFtIHN0cmluZyAkZHNuIERTTiBzdHJpbmcgaW4gZm9ybWF0OiBwb3N0Z3JlczovL3VzZXI6cGFzc3dvcmRAaG9zdDpwb3J0L2RhdGFiYXNlP29wdGlvbnMKICoKICogQHRocm93cyBDbGllbnRcRHNuUGFyc2VyRXhjZXB0aW9uIElmIHRoZSBEU04gY2Fubm90IGJlIHBhcnNlZAogKgogKiBAZXhhbXBsZQogKiAkcGFyYW1zID0gcGdzcWxfY29ubmVjdGlvbl9kc24oJ3Bvc3RncmVzOi8vbXl1c2VyOnNlY3JldEBsb2NhbGhvc3Q6NTQzMi9teWRiJyk7CiAqICRwYXJhbXMgPSBwZ3NxbF9jb25uZWN0aW9uX2RzbigncG9zdGdyZXNxbDovL3VzZXI6cGFzc0BkYi5leGFtcGxlLmNvbS9hcHA\/c3NsbW9kZT1yZXF1aXJlJyk7CiAqICRwYXJhbXMgPSBwZ3NxbF9jb25uZWN0aW9uX2RzbigncGdzcWw6Ly91c2VyOnBhc3NAbG9jYWxob3N0L215ZGInKTsgLy8gU3ltZm9ueS9Eb2N0cmluZSBmb3JtYXQKICogJHBhcmFtcyA9IHBnc3FsX2Nvbm5lY3Rpb25fZHNuKGdldGVudignREFUQUJBU0VfVVJMJykpOwogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/client.php","start_line_in_file":95,"slug":"pgsql-connection-params","name":"pgsql_connection_params","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"database","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"host","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'localhost'"},{"name":"port","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"5432"},{"name":"user","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"password","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"options","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"}],"return_type":[{"name":"ConnectionParameters","namespace":"Flow\\PostgreSql\\Client","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBjb25uZWN0aW9uIHBhcmFtZXRlcnMgZnJvbSBpbmRpdmlkdWFsIHZhbHVlcy4KICoKICogQWxsb3dzIHNwZWNpZnlpbmcgY29ubmVjdGlvbiBwYXJhbWV0ZXJzIGluZGl2aWR1YWxseSBmb3IgYmV0dGVyIHR5cGUgc2FmZXR5CiAqIGFuZCBJREUgc3VwcG9ydC4KICoKICogQHBhcmFtIHN0cmluZyAkZGF0YWJhc2UgRGF0YWJhc2UgbmFtZSAocmVxdWlyZWQpCiAqIEBwYXJhbSBzdHJpbmcgJGhvc3QgSG9zdG5hbWUgKGRlZmF1bHQ6IGxvY2FsaG9zdCkKICogQHBhcmFtIGludCAkcG9ydCBQb3J0IG51bWJlciAoZGVmYXVsdDogNTQzMikKICogQHBhcmFtIG51bGx8c3RyaW5nICR1c2VyIFVzZXJuYW1lIChvcHRpb25hbCkKICogQHBhcmFtIG51bGx8c3RyaW5nICRwYXNzd29yZCBQYXNzd29yZCAob3B0aW9uYWwpCiAqIEBwYXJhbSBhcnJheTxzdHJpbmcsIHN0cmluZz4gJG9wdGlvbnMgQWRkaXRpb25hbCBsaWJwcSBvcHRpb25zCiAqCiAqIEBleGFtcGxlCiAqICRwYXJhbXMgPSBwZ3NxbF9jb25uZWN0aW9uX3BhcmFtcygKICogICAgIGRhdGFiYXNlOiAnbXlkYicsCiAqICAgICBob3N0OiAnbG9jYWxob3N0JywKICogICAgIHVzZXI6ICdteXVzZXInLAogKiAgICAgcGFzc3dvcmQ6ICdzZWNyZXQnLAogKiApOwogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/client.php","start_line_in_file":126,"slug":"pgsql-client","name":"pgsql_client","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"params","type":[{"name":"ConnectionParameters","namespace":"Flow\\PostgreSql\\Client","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"valueConverters","type":[{"name":"ValueConverters","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"context","type":[{"name":"Context","namespace":"Flow\\PostgreSql\\Client","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Client","namespace":"Flow\\PostgreSql\\Client","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFBvc3RncmVTUUwgY2xpZW50IHVzaW5nIGV4dC1wZ3NxbC4KICoKICogVGhlIGNsaWVudCBjb25uZWN0cyBpbW1lZGlhdGVseSBhbmQgaXMgcmVhZHkgdG8gZXhlY3V0ZSBxdWVyaWVzLgogKgogKiBAcGFyYW0gQ2xpZW50XENvbm5lY3Rpb25QYXJhbWV0ZXJzICRwYXJhbXMgQ29ubmVjdGlvbiBwYXJhbWV0ZXJzCiAqIEBwYXJhbSBudWxsfFZhbHVlQ29udmVydGVycyAkdmFsdWVDb252ZXJ0ZXJzIEN1c3RvbSB0eXBlIGNvbnZlcnRlcnMgKG9wdGlvbmFsKQogKiBAcGFyYW0gbnVsbHxDb250ZXh0ICRjb250ZXh0IEJhc2UgbWFwcGVyIENvbnRleHQg4oCUIHRoZSBDbGllbnQgZW5yaWNoZXMgaXQgd2l0aCBzcWwvcGFyYW1ldGVycy9zZWxmIHBlciBxdWVyeSBiZWZvcmUgaGFuZGluZyBpdCB0byBSb3dNYXBwZXI6Om1hcCgpCiAqCiAqIEB0aHJvd3MgQ29ubmVjdGlvbkV4Y2VwdGlvbiBJZiBjb25uZWN0aW9uIGZhaWxzCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/client.php","start_line_in_file":143,"slug":"postgresql-context","name":"postgresql_context","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"data","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"catalog","type":[{"name":"Catalog","namespace":"Flow\\PostgreSql\\Schema","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Context","namespace":"Flow\\PostgreSql\\Client","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFJvd01hcHBlciBDb250ZXh0IHNlZWRlZCB3aXRoIHVzZXItc3VwcGxpZWQga2V5L3ZhbHVlIGRhdGEgYW5kIGFuIG9wdGlvbmFsIENhdGFsb2cuCiAqCiAqIFRoZSBDb250ZXh0IGlzIGxhdGVyIGVucmljaGVkIHdpdGggYSBRdWVyeSAoc3FsICsgcGFyYW1ldGVycykgYW5kIHRoZSBleGVjdXRpbmcgQ2xpZW50IGJ5IHRoZQogKiBQb3N0Z3JlU1FMIENsaWVudCBiZWZvcmUgYmVpbmcgaGFuZGVkIHRvIFJvd01hcHBlcjo6bWFwKCkuCiAqCiAqIEBwYXJhbSBhcnJheTxzdHJpbmcsIG1peGVkPiAkZGF0YSBVc2VyLXN1cHBsaWVkIGtleS92YWx1ZSBwYWlycwogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/client.php","start_line_in_file":176,"slug":"postgresql-telemetry-options","name":"postgresql_telemetry_options","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"traceQueries","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"transactionSpans","type":[{"name":"TransactionSpanMode","namespace":"Flow\\PostgreSql\\Client\\Telemetry","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\PostgreSql\\Client\\Telemetry\\TransactionSpanMode::..."},{"name":"collectMetrics","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"logQueries","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"maxQueryLength","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"1000"},{"name":"includeParameters","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"maxParameters","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"10"},{"name":"maxParameterLength","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"100"}],"return_type":[{"name":"PostgreSqlTelemetryOptions","namespace":"Flow\\PostgreSql\\Client\\Telemetry","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSB0ZWxlbWV0cnkgb3B0aW9ucyBmb3IgUG9zdGdyZVNRTCBjbGllbnQgaW5zdHJ1bWVudGF0aW9uLgogKgogKiBDb250cm9scyB3aGljaCB0ZWxlbWV0cnkgc2lnbmFscyAodHJhY2VzLCBtZXRyaWNzLCBsb2dzKSBhcmUgZW5hYmxlZAogKiBhbmQgaG93IHF1ZXJ5IGluZm9ybWF0aW9uIGlzIGNhcHR1cmVkLgogKgogKiBAcGFyYW0gYm9vbCAkdHJhY2VRdWVyaWVzIENyZWF0ZSBzcGFucyBmb3IgcXVlcnkgZXhlY3V0aW9uIChkZWZhdWx0OiB0cnVlKQogKiBAcGFyYW0gVHJhbnNhY3Rpb25TcGFuTW9kZSAkdHJhbnNhY3Rpb25TcGFucyBIb3cgdHJhbnNhY3Rpb25zIGFyZSB0cmFjZWQ6IEdST1VQRUQgKGRlZmF1bHQpLCBQRVJfT1BFUkFUSU9OIG9yIE9GRgogKiBAcGFyYW0gYm9vbCAkY29sbGVjdE1ldHJpY3MgQ29sbGVjdCBkdXJhdGlvbiBhbmQgcm93IGNvdW50IG1ldHJpY3MgKGRlZmF1bHQ6IHRydWUpCiAqIEBwYXJhbSBib29sICRsb2dRdWVyaWVzIExvZyBleGVjdXRlZCBxdWVyaWVzIChkZWZhdWx0OiBmYWxzZSkKICogQHBhcmFtIG51bGx8aW50ICRtYXhRdWVyeUxlbmd0aCBNYXhpbXVtIHF1ZXJ5IHRleHQgbGVuZ3RoIGluIHRlbGVtZXRyeSAoZGVmYXVsdDogMTAwMCwgbnVsbCA9IHVubGltaXRlZCkKICogQHBhcmFtIGJvb2wgJGluY2x1ZGVQYXJhbWV0ZXJzIEluY2x1ZGUgcXVlcnkgcGFyYW1ldGVycyBpbiB0ZWxlbWV0cnkgKGRlZmF1bHQ6IGZhbHNlLCBzZWN1cml0eSBjb25zaWRlcmF0aW9uKQogKgogKiBAZXhhbXBsZQogKiAvLyBEZWZhdWx0IG9wdGlvbnMgKHRyYWNlcyBhbmQgbWV0cmljcyBlbmFibGVkKQogKiAkb3B0aW9ucyA9IHBvc3RncmVzcWxfdGVsZW1ldHJ5X29wdGlvbnMoKTsKICoKICogLy8gRW5hYmxlIHF1ZXJ5IGxvZ2dpbmcKICogJG9wdGlvbnMgPSBwb3N0Z3Jlc3FsX3RlbGVtZXRyeV9vcHRpb25zKGxvZ1F1ZXJpZXM6IHRydWUpOwogKgogKiAvLyBNZXRyaWNzIG9ubHksIG5vIHNwYW5zCiAqICRvcHRpb25zID0gcG9zdGdyZXNxbF90ZWxlbWV0cnlfb3B0aW9ucygKICogICAgIHRyYWNlUXVlcmllczogZmFsc2UsCiAqICAgICB0cmFuc2FjdGlvblNwYW5zOiBUcmFuc2FjdGlvblNwYW5Nb2RlOjpPRkYsCiAqICAgICBjb2xsZWN0TWV0cmljczogdHJ1ZSwKICogKTsKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/client.php","start_line_in_file":214,"slug":"postgresql-telemetry-config","name":"postgresql_telemetry_config","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"telemetry","type":[{"name":"Telemetry","namespace":"Flow\\Telemetry","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"clock","type":[{"name":"ClockInterface","namespace":"Psr\\Clock","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"options","type":[{"name":"PostgreSqlTelemetryOptions","namespace":"Flow\\PostgreSql\\Client\\Telemetry","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"PostgreSqlTelemetryConfig","namespace":"Flow\\PostgreSql\\Client\\Telemetry","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSB0ZWxlbWV0cnkgY29uZmlndXJhdGlvbiBmb3IgUG9zdGdyZVNRTCBjbGllbnQuCiAqCiAqIEJ1bmRsZXMgdGVsZW1ldHJ5IGluc3RhbmNlLCBjbG9jaywgYW5kIG9wdGlvbnMgbmVlZGVkIHRvIGluc3RydW1lbnQgYSBQb3N0Z3JlU1FMIGNsaWVudC4KICoKICogQHBhcmFtIFRlbGVtZXRyeSAkdGVsZW1ldHJ5IFRoZSB0ZWxlbWV0cnkgaW5zdGFuY2UKICogQHBhcmFtIENsb2NrSW50ZXJmYWNlICRjbG9jayBDbG9jayBmb3IgdGltZXN0YW1wcwogKiBAcGFyYW0gbnVsbHxQb3N0Z3JlU3FsVGVsZW1ldHJ5T3B0aW9ucyAkb3B0aW9ucyBUZWxlbWV0cnkgb3B0aW9ucyAoZGVmYXVsdDogYWxsIGVuYWJsZWQpCiAqCiAqIEBleGFtcGxlCiAqICRjb25maWcgPSBwb3N0Z3Jlc3FsX3RlbGVtZXRyeV9jb25maWcoCiAqICAgICB0ZWxlbWV0cnkocmVzb3VyY2UoWydzZXJ2aWNlLm5hbWUnID0+ICdteS1hcHAnXSkpLAogKiAgICAgbmV3IFN5c3RlbUNsb2NrKCksCiAqICk7CiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/client.php","start_line_in_file":260,"slug":"traceable-postgresql-client","name":"traceable_postgresql_client","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"client","type":[{"name":"Client","namespace":"Flow\\PostgreSql\\Client","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"telemetryConfig","type":[{"name":"PostgreSqlTelemetryConfig","namespace":"Flow\\PostgreSql\\Client\\Telemetry","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"TraceableClient","namespace":"Flow\\PostgreSql\\Client\\Telemetry","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIFdyYXAgYSBQb3N0Z3JlU1FMIGNsaWVudCB3aXRoIHRlbGVtZXRyeSBpbnN0cnVtZW50YXRpb24uCiAqCiAqIFJldHVybnMgYSBkZWNvcmF0b3IgdGhhdCBhZGRzIHNwYW5zLCBtZXRyaWNzLCBhbmQgbG9ncyB0byBhbGwKICogcXVlcnkgYW5kIHRyYW5zYWN0aW9uIG9wZXJhdGlvbnMgZm9sbG93aW5nIE9wZW5UZWxlbWV0cnkgY29udmVudGlvbnMuCiAqCiAqIEBwYXJhbSBDbGllbnRcQ2xpZW50ICRjbGllbnQgVGhlIFBvc3RncmVTUUwgY2xpZW50IHRvIGluc3RydW1lbnQKICogQHBhcmFtIFBvc3RncmVTcWxUZWxlbWV0cnlDb25maWcgJHRlbGVtZXRyeUNvbmZpZyBUZWxlbWV0cnkgY29uZmlndXJhdGlvbgogKgogKiBAZXhhbXBsZQogKiAkY2xpZW50ID0gcGdzcWxfY2xpZW50KHBnc3FsX2Nvbm5lY3Rpb24oJ2hvc3Q9bG9jYWxob3N0IGRibmFtZT1teWRiJykpOwogKgogKiAkdHJhY2VhYmxlQ2xpZW50ID0gdHJhY2VhYmxlX3Bvc3RncmVzcWxfY2xpZW50KAogKiAgICAgJGNsaWVudCwKICogICAgIHBvc3RncmVzcWxfdGVsZW1ldHJ5X2NvbmZpZygKICogICAgICAgICB0ZWxlbWV0cnkocmVzb3VyY2UoWydzZXJ2aWNlLm5hbWUnID0+ICdteS1hcHAnXSkpLAogKiAgICAgICAgIG5ldyBTeXN0ZW1DbG9jaygpLAogKiAgICAgICAgIHBvc3RncmVzcWxfdGVsZW1ldHJ5X29wdGlvbnMoCiAqICAgICAgICAgICAgIHRyYWNlUXVlcmllczogdHJ1ZSwKICogICAgICAgICAgICAgdHJhbnNhY3Rpb25TcGFuczogVHJhbnNhY3Rpb25TcGFuTW9kZTo6R1JPVVBFRCwKICogICAgICAgICAgICAgY29sbGVjdE1ldHJpY3M6IHRydWUsCiAqICAgICAgICAgICAgIGxvZ1F1ZXJpZXM6IHRydWUsCiAqICAgICAgICAgICAgIG1heFF1ZXJ5TGVuZ3RoOiA1MDAsCiAqICAgICAgICAgKSwKICogICAgICksCiAqICk7CiAqCiAqIC8vIEFsbCBvcGVyYXRpb25zIG5vdyB0cmFjZWQKICogJHRyYWNlYWJsZUNsaWVudC0+dHJhbnNhY3Rpb24oZnVuY3Rpb24gKENsaWVudCAkY2xpZW50KSB7CiAqICAgICAkdXNlciA9ICRjbGllbnQtPmZldGNoU2luZ2xlKCdTRUxFQ1QgKiBGUk9NIHVzZXJzIFdIRVJFIGlkID0gJDEnLCBbMTIzXSk7CiAqICAgICAkY2xpZW50LT5leGVjdXRlKCdVUERBVEUgdXNlcnMgU0VUIGxhc3RfbG9naW4gPSBOT1coKSBXSEVSRSBpZCA9ICQxJywgWzEyM10pOwogKiB9KTsKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/client.php","start_line_in_file":300,"slug":"constructor-mapper","name":"constructor_mapper","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"class","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ConstructorMapper","namespace":"Flow\\PostgreSql\\Client\\RowMapper","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEB0ZW1wbGF0ZSBUIG9mIG9iamVjdAogKgogKiBAcGFyYW0gY2xhc3Mtc3RyaW5nPFQ+ICRjbGFzcwogKgogKiBAcmV0dXJuIENvbnN0cnVjdG9yTWFwcGVyPFQ+CiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/client.php","start_line_in_file":315,"slug":"type-mapper","name":"type_mapper","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"type","type":[{"name":"Type","namespace":"Flow\\Types","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"next","type":[{"name":"RowMapper","namespace":"Flow\\PostgreSql\\Client","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"TypeMapper","namespace":"Flow\\PostgreSql\\Client\\RowMapper","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEB0ZW1wbGF0ZSBUVHlwZQogKiBAdGVtcGxhdGUgVE91dAogKgogKiBAcGFyYW0gRmxvd1R5cGU8VFR5cGU+ICR0eXBlCiAqIEBwYXJhbSBudWxsfFJvd01hcHBlcjxUT3V0PiAkbmV4dAogKgogKiBAcmV0dXJuICgkbmV4dCBpcyBudWxsID8gVHlwZU1hcHBlcjxUVHlwZSwgVFR5cGU+IDogVHlwZU1hcHBlcjxUVHlwZSwgVE91dD4pCiAqLw=="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/client.php","start_line_in_file":343,"slug":"static-factory-mapper","name":"static_factory_mapper","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"class","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"method","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"StaticFactoryMapper","namespace":"Flow\\PostgreSql\\Client\\RowMapper","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIHJvdyBtYXBwZXIgYmFja2VkIGJ5IGEgcHVibGljIHN0YXRpYyBmYWN0b3J5IG1ldGhvZC4KICoKICogVGhlIGZhY3RvcnkgbWV0aG9kIG11c3QgYWNjZXB0IGEgc2luZ2xlIGFycmF5PHN0cmluZywgbWl4ZWQ+ICRyb3cgYW5kIHJldHVybgogKiBhbiBpbnN0YW5jZSBvZiB0aGUgdGFyZ2V0IGNsYXNzLiBJZiB5b3VyIGZhY3RvcnkgbmVlZHMgYWNjZXNzIHRvIHRoZSBtYXBwaW5nCiAqIENvbnRleHQgKHNxbC9wYXJhbWV0ZXJzL2NsaWVudC9jYXRhbG9nL3VzZXItZGF0YSksIGltcGxlbWVudCBSb3dNYXBwZXIgZGlyZWN0bHkuCiAqCiAqIEB0ZW1wbGF0ZSBUIG9mIG9iamVjdAogKgogKiBAcGFyYW0gY2xhc3Mtc3RyaW5nPFQ+ICRjbGFzcwogKiBAcGFyYW0gbm9uLWVtcHR5LXN0cmluZyAkbWV0aG9kCiAqCiAqIEByZXR1cm4gU3RhdGljRmFjdG9yeU1hcHBlcjxUPgogKi8="},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/client.php","start_line_in_file":372,"slug":"typed","name":"typed","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"value","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null},{"name":"targetType","type":[{"name":"ValueType","namespace":"Flow\\PostgreSql\\Client\\Types","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"TypedValue","namespace":"Flow\\PostgreSql\\Client","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIFdyYXAgYSB2YWx1ZSB3aXRoIGV4cGxpY2l0IFBvc3RncmVTUUwgdHlwZSBpbmZvcm1hdGlvbiBmb3IgcGFyYW1ldGVyIGJpbmRpbmcuCiAqCiAqIFVzZSB3aGVuIGF1dG8tZGV0ZWN0aW9uIGlzbid0IHN1ZmZpY2llbnQgb3Igd2hlbiB5b3UgbmVlZCB0byBzcGVjaWZ5CiAqIHRoZSBleGFjdCBQb3N0Z3JlU1FMIHR5cGUgKHNpbmNlIG9uZSBQSFAgdHlwZSBjYW4gbWFwIHRvIG11bHRpcGxlIFBvc3RncmVTUUwgdHlwZXMpOgogKiAtIGludCBjb3VsZCBiZSBJTlQyLCBJTlQ0LCBvciBJTlQ4CiAqIC0gc3RyaW5nIGNvdWxkIGJlIFRFWFQsIFZBUkNIQVIsIG9yIENIQVIKICogLSBhcnJheSBtdXN0IGFsd2F5cyB1c2UgdHlwZWQoKSBzaW5jZSBhdXRvLWRldGVjdGlvbiBjYW5ub3QgZGV0ZXJtaW5lIGVsZW1lbnQgdHlwZQogKiAtIERhdGVUaW1lSW50ZXJmYWNlIGNvdWxkIGJlIFRJTUVTVEFNUCBvciBUSU1FU1RBTVBUWgogKiAtIEpzb24gY291bGQgYmUgSlNPTiBvciBKU09OQgogKgogKiBAcGFyYW0gbWl4ZWQgJHZhbHVlIFRoZSB2YWx1ZSB0byBiaW5kCiAqIEBwYXJhbSBWYWx1ZVR5cGUgJHRhcmdldFR5cGUgVGhlIFBvc3RncmVTUUwgdHlwZSB0byBjb252ZXJ0IHRoZSB2YWx1ZSB0bwogKgogKiBAZXhhbXBsZQogKiAkY2xpZW50LT5mZXRjaCgKICogICAgICdTRUxFQ1QgKiBGUk9NIHVzZXJzIFdIRVJFIGlkID0gJDEgQU5EIHRhZ3MgPSAkMicsCiAqICAgICBbCiAqICAgICAgICAgdHlwZWQoJzU1MGU4NDAwLWUyOWItNDFkNC1hNzE2LTQ0NjY1NTQ0MDAwMCcsIFZhbHVlVHlwZTo6VVVJRCksCiAqICAgICAgICAgdHlwZWQoWyd0YWcxJywgJ3RhZzInXSwgVmFsdWVUeXBlOjpURVhUX0FSUkFZKSwKICogICAgIF0KICogKTsKICov"},{"repository_path":"src\/lib\/postgresql\/src\/Flow\/PostgreSql\/DSL\/client.php","start_line_in_file":386,"slug":"converted-parameters","name":"converted_parameters","namespace":"Flow\\PostgreSql\\DSL","parameters":[{"name":"values","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ConvertedParameters","namespace":"Flow\\PostgreSql\\Client","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PG_QUERY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIFBhcmFtZXRlcnMgYWxyZWFkeSBpbiBQb3N0Z3JlU1FMJ3MgdGV4dCBmb3JtLCB3aGljaCBDbGllbnQ6OmV4ZWN1dGUoKSBzZW5kcyB3aXRob3V0IHJ1bm5pbmcgYSBjb252ZXJ0ZXIuCiAqCiAqIEBwYXJhbSBsaXN0PG51bGx8c3RyaW5nPiAkdmFsdWVzCiAqCiAqIEBleGFtcGxlCiAqICRjbGllbnQtPmV4ZWN1dGUoJ1VQREFURSB1c2VycyBTRVQgYWN0aXZlID0gJDEgV0hFUkUgaWQgPSAkMicsIGNvbnZlcnRlZF9wYXJhbWV0ZXJzKFsnZicsICcxJ10pKTsKICov"},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":127,"slug":"trace-id","name":"trace_id","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"hex","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"TraceId","namespace":"Flow\\Telemetry\\Context","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFRyYWNlSWQuCiAqCiAqIElmIGEgaGV4IHN0cmluZyBpcyBwcm92aWRlZCwgY3JlYXRlcyBhIFRyYWNlSWQgZnJvbSBpdC4KICogT3RoZXJ3aXNlLCBnZW5lcmF0ZXMgYSBuZXcgcmFuZG9tIFRyYWNlSWQuCiAqCiAqIEBwYXJhbSBudWxsfHN0cmluZyAkaGV4IE9wdGlvbmFsIDMyLWNoYXJhY3RlciBoZXhhZGVjaW1hbCBzdHJpbmcKICoKICogQHRocm93cyBcSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uIGlmIHRoZSBoZXggc3RyaW5nIGlzIGludmFsaWQKICov"},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":147,"slug":"span-id","name":"span_id","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"hex","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"SpanId","namespace":"Flow\\Telemetry\\Context","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFNwYW5JZC4KICoKICogSWYgYSBoZXggc3RyaW5nIGlzIHByb3ZpZGVkLCBjcmVhdGVzIGEgU3BhbklkIGZyb20gaXQuCiAqIE90aGVyd2lzZSwgZ2VuZXJhdGVzIGEgbmV3IHJhbmRvbSBTcGFuSWQuCiAqCiAqIEBwYXJhbSBudWxsfHN0cmluZyAkaGV4IE9wdGlvbmFsIDE2LWNoYXJhY3RlciBoZXhhZGVjaW1hbCBzdHJpbmcKICoKICogQHRocm93cyBcSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uIGlmIHRoZSBoZXggc3RyaW5nIGlzIGludmFsaWQKICov"},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":162,"slug":"baggage","name":"baggage","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"entries","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"}],"return_type":[{"name":"Baggage","namespace":"Flow\\Telemetry\\Context","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIEJhZ2dhZ2UuCiAqCiAqIEBwYXJhbSBhcnJheTxzdHJpbmcsIHN0cmluZz4gJGVudHJpZXMgSW5pdGlhbCBrZXktdmFsdWUgZW50cmllcwogKi8="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":176,"slug":"context","name":"context","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"baggage","type":[{"name":"Baggage","namespace":"Flow\\Telemetry\\Context","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Context","namespace":"Flow\\Telemetry\\Context","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIHJvb3QgQ29udGV4dCAobm8gYWN0aXZlIHNwYW4pLgogKgogKiBBIHNwYW4gY3JlYXRlZCBpbiB0aGlzIGNvbnRleHQgYmVjb21lcyBhIG5ldyB0cmFjZSByb290LiBBdHRhY2ggYW4gYWN0aXZlIHNwYW4gd2l0aAogKiBDb250ZXh0Ojp3aXRoQWN0aXZlU3BhbigpIHRvIG1ha2Ugc3Vic2VxdWVudCBzcGFucyBpdHMgY2hpbGRyZW4uCiAqCiAqIEBwYXJhbSBudWxsfEJhZ2dhZ2UgJGJhZ2dhZ2UgT3B0aW9uYWwgQmFnZ2FnZSB0byB1c2UKICov"},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":190,"slug":"memory-context-storage","name":"memory_context_storage","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"context","type":[{"name":"Context","namespace":"Flow\\Telemetry\\Context","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"MemoryContextStorage","namespace":"Flow\\Telemetry\\Context","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIE1lbW9yeUNvbnRleHRTdG9yYWdlLgogKgogKiBJbi1tZW1vcnkgY29udGV4dCBzdG9yYWdlIGZvciBzdG9yaW5nIGFuZCByZXRyaWV2aW5nIHRoZSBjdXJyZW50IGNvbnRleHQuCiAqIEEgc2luZ2xlIGluc3RhbmNlIHNob3VsZCBiZSBzaGFyZWQgYWNyb3NzIGFsbCBwcm92aWRlcnMgd2l0aGluIGEgcmVxdWVzdCBsaWZlY3ljbGUuCiAqCiAqIEBwYXJhbSBudWxsfENvbnRleHQgJGNvbnRleHQgT3B0aW9uYWwgaW5pdGlhbCBjb250ZXh0CiAqLw=="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":201,"slug":"resource","name":"resource","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"attributes","type":[{"name":"Attributes","namespace":"Flow\\Telemetry","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"}],"return_type":[{"name":"Resource","namespace":"Flow\\Telemetry","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFJlc291cmNlLgogKgogKiBAcGFyYW0gYXJyYXk8c3RyaW5nLCBhcnJheTxhcnJheS1rZXksIG1peGVkPnxib29sfFxEYXRlVGltZUludGVyZmFjZXxmbG9hdHxpbnR8c3RyaW5nfFxUaHJvd2FibGU+fEF0dHJpYnV0ZXMgJGF0dHJpYnV0ZXMgUmVzb3VyY2UgYXR0cmlidXRlcwogKi8="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":214,"slug":"span-context","name":"span_context","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"traceId","type":[{"name":"TraceId","namespace":"Flow\\Telemetry\\Context","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"spanId","type":[{"name":"SpanId","namespace":"Flow\\Telemetry\\Context","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"parentSpanId","type":[{"name":"SpanId","namespace":"Flow\\Telemetry\\Context","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"SpanContext","namespace":"Flow\\Telemetry\\Tracer","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFNwYW5Db250ZXh0LgogKgogKiBAcGFyYW0gVHJhY2VJZCAkdHJhY2VJZCBUaGUgdHJhY2UgSUQKICogQHBhcmFtIFNwYW5JZCAkc3BhbklkIFRoZSBzcGFuIElECiAqIEBwYXJhbSBudWxsfFNwYW5JZCAkcGFyZW50U3BhbklkIE9wdGlvbmFsIHBhcmVudCBzcGFuIElECiAqLw=="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":227,"slug":"span-event","name":"span_event","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"timestamp","type":[{"name":"DateTimeImmutable","namespace":"","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"attributes","type":[{"name":"Attributes","namespace":"Flow\\Telemetry","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"}],"return_type":[{"name":"GenericEvent","namespace":"Flow\\Telemetry\\Tracer","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFNwYW5FdmVudCAoR2VuZXJpY0V2ZW50KSB3aXRoIGFuIGV4cGxpY2l0IHRpbWVzdGFtcC4KICoKICogQHBhcmFtIHN0cmluZyAkbmFtZSBFdmVudCBuYW1lCiAqIEBwYXJhbSBcRGF0ZVRpbWVJbW11dGFibGUgJHRpbWVzdGFtcCBFdmVudCB0aW1lc3RhbXAKICogQHBhcmFtIGFycmF5PHN0cmluZywgYXJyYXk8YXJyYXkta2V5LCBtaXhlZD58Ym9vbHxcRGF0ZVRpbWVJbnRlcmZhY2V8ZmxvYXR8aW50fHN0cmluZ3xcVGhyb3dhYmxlPnxBdHRyaWJ1dGVzICRhdHRyaWJ1dGVzIEV2ZW50IGF0dHJpYnV0ZXMKICov"},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":239,"slug":"span-link","name":"span_link","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"context","type":[{"name":"SpanContext","namespace":"Flow\\Telemetry\\Tracer","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"attributes","type":[{"name":"Attributes","namespace":"Flow\\Telemetry","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"}],"return_type":[{"name":"SpanLink","namespace":"Flow\\Telemetry\\Tracer","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFNwYW5MaW5rLgogKgogKiBAcGFyYW0gU3BhbkNvbnRleHQgJGNvbnRleHQgVGhlIGxpbmtlZCBzcGFuIGNvbnRleHQKICogQHBhcmFtIGFycmF5PHN0cmluZywgYXJyYXk8YXJyYXkta2V5LCBtaXhlZD58Ym9vbHxcRGF0ZVRpbWVJbnRlcmZhY2V8ZmxvYXR8aW50fHN0cmluZ3xcVGhyb3dhYmxlPnxBdHRyaWJ1dGVzICRhdHRyaWJ1dGVzIExpbmsgYXR0cmlidXRlcwogKi8="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":255,"slug":"span-limits","name":"span_limits","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"attributeCountLimit","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"128"},{"name":"eventCountLimit","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"128"},{"name":"linkCountLimit","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"128"},{"name":"attributePerEventCountLimit","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"128"},{"name":"attributePerLinkCountLimit","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"128"},{"name":"attributeValueLengthLimit","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"SpanLimits","namespace":"Flow\\Telemetry\\Tracer","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBTcGFuTGltaXRzIGNvbmZpZ3VyYXRpb24uCiAqCiAqIEBwYXJhbSBpbnQgJGF0dHJpYnV0ZUNvdW50TGltaXQgTWF4aW11bSBudW1iZXIgb2YgYXR0cmlidXRlcyBwZXIgc3BhbgogKiBAcGFyYW0gaW50ICRldmVudENvdW50TGltaXQgTWF4aW11bSBudW1iZXIgb2YgZXZlbnRzIHBlciBzcGFuCiAqIEBwYXJhbSBpbnQgJGxpbmtDb3VudExpbWl0IE1heGltdW0gbnVtYmVyIG9mIGxpbmtzIHBlciBzcGFuCiAqIEBwYXJhbSBpbnQgJGF0dHJpYnV0ZVBlckV2ZW50Q291bnRMaW1pdCBNYXhpbXVtIG51bWJlciBvZiBhdHRyaWJ1dGVzIHBlciBldmVudAogKiBAcGFyYW0gaW50ICRhdHRyaWJ1dGVQZXJMaW5rQ291bnRMaW1pdCBNYXhpbXVtIG51bWJlciBvZiBhdHRyaWJ1dGVzIHBlciBsaW5rCiAqIEBwYXJhbSBudWxsfGludCAkYXR0cmlidXRlVmFsdWVMZW5ndGhMaW1pdCBNYXhpbXVtIGxlbmd0aCBmb3Igc3RyaW5nIGF0dHJpYnV0ZSB2YWx1ZXMgKG51bGwgPSB1bmxpbWl0ZWQpCiAqLw=="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":280,"slug":"log-record-limits","name":"log_record_limits","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"attributeCountLimit","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"128"},{"name":"attributeValueLengthLimit","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"LogRecordLimits","namespace":"Flow\\Telemetry\\Logger","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBMb2dSZWNvcmRMaW1pdHMgY29uZmlndXJhdGlvbi4KICoKICogQHBhcmFtIGludCAkYXR0cmlidXRlQ291bnRMaW1pdCBNYXhpbXVtIG51bWJlciBvZiBhdHRyaWJ1dGVzIHBlciBsb2cgcmVjb3JkCiAqIEBwYXJhbSBudWxsfGludCAkYXR0cmlidXRlVmFsdWVMZW5ndGhMaW1pdCBNYXhpbXVtIGxlbmd0aCBmb3Igc3RyaW5nIGF0dHJpYnV0ZSB2YWx1ZXMgKG51bGwgPSB1bmxpbWl0ZWQpCiAqLw=="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":291,"slug":"metric-limits","name":"metric_limits","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"cardinalityLimit","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"2000"}],"return_type":[{"name":"MetricLimits","namespace":"Flow\\Telemetry\\Meter","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBNZXRyaWNMaW1pdHMgY29uZmlndXJhdGlvbi4KICoKICogQHBhcmFtIGludCAkY2FyZGluYWxpdHlMaW1pdCBNYXhpbXVtIG51bWJlciBvZiB1bmlxdWUgYXR0cmlidXRlIGNvbWJpbmF0aW9ucyBwZXIgaW5zdHJ1bWVudAogKi8="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":302,"slug":"void-span-processor","name":"void_span_processor","namespace":"Flow\\Telemetry\\DSL","parameters":[],"return_type":[{"name":"VoidSpanProcessor","namespace":"Flow\\Telemetry\\Provider\\Void","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFZvaWRTcGFuUHJvY2Vzc29yLgogKgogKiBOby1vcCBzcGFuIHByb2Nlc3NvciB0aGF0IGRpc2NhcmRzIGFsbCBkYXRhLgogKi8="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":313,"slug":"void-metric-processor","name":"void_metric_processor","namespace":"Flow\\Telemetry\\DSL","parameters":[],"return_type":[{"name":"VoidMetricProcessor","namespace":"Flow\\Telemetry\\Provider\\Void","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFZvaWRNZXRyaWNQcm9jZXNzb3IuCiAqCiAqIE5vLW9wIG1ldHJpYyBwcm9jZXNzb3IgdGhhdCBkaXNjYXJkcyBhbGwgZGF0YS4KICov"},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":324,"slug":"void-log-processor","name":"void_log_processor","namespace":"Flow\\Telemetry\\DSL","parameters":[],"return_type":[{"name":"VoidLogProcessor","namespace":"Flow\\Telemetry\\Provider\\Void","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFZvaWRMb2dQcm9jZXNzb3IuCiAqCiAqIE5vLW9wIGxvZyBwcm9jZXNzb3IgdGhhdCBkaXNjYXJkcyBhbGwgZGF0YS4KICov"},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":335,"slug":"void-exporter","name":"void_exporter","namespace":"Flow\\Telemetry\\DSL","parameters":[],"return_type":[{"name":"VoidExporter","namespace":"Flow\\Telemetry\\Provider\\Void","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFZvaWRFeHBvcnRlci4KICoKICogTm8tb3AgdW5pZmllZCBleHBvcnRlciB0aGF0IGRpc2NhcmRzIGxvZ3MsIG1ldHJpY3MsIGFuZCBzcGFucy4KICov"},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":349,"slug":"memory-exporter","name":"memory_exporter","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"maxEntriesPerSignal","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"MemoryExporter","namespace":"Flow\\Telemetry\\Provider\\Memory","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIE1lbW9yeUV4cG9ydGVyLgogKgogKiBVbmlmaWVkIGV4cG9ydGVyIHRoYXQgc3RvcmVzIGxvZ3MsIG1ldHJpY3MsIGFuZCBzcGFucyBpbiBtZW1vcnkgZm9yIGRpcmVjdCBhY2Nlc3MuCiAqIFVzZWZ1bCBmb3IgdGVzdGluZyBhbmQgaW5zcGVjdGlvbiB3aXRob3V0IHNlcmlhbGl6YXRpb24uCiAqCiAqIEBwYXJhbSBudWxsfGludCAkbWF4RW50cmllc1BlclNpZ25hbCBtYXhpbXVtIGVudHJpZXMgcmV0YWluZWQgcGVyIHNpZ25hbCB0eXBlOyBudWxsIGtlZXBzIGV2ZXJ5dGhpbmcKICov"},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":361,"slug":"memory-span-processor","name":"memory_span_processor","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"exporter","type":[{"name":"Exporter","namespace":"Flow\\Telemetry\\Exporter","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"errorHandler","type":[{"name":"ErrorHandler","namespace":"Flow\\Telemetry\\ErrorHandler","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Telemetry\\ErrorHandler\\ErrorLogHandler::..."}],"return_type":[{"name":"MemorySpanProcessor","namespace":"Flow\\Telemetry\\Provider\\Memory","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIE1lbW9yeVNwYW5Qcm9jZXNzb3IuCiAqCiAqIEBwYXJhbSBFeHBvcnRlciAkZXhwb3J0ZXIgVGhlIGV4cG9ydGVyIHRvIHNlbmQgc3BhbnMgdG8KICogQHBhcmFtIEVycm9ySGFuZGxlciAkZXJyb3JIYW5kbGVyIEhhbmRsZXIgZm9yIFRocm93YWJsZXMgcmFpc2VkIGJ5IHRoZSBleHBvcnRlcgogKi8="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":375,"slug":"memory-metric-processor","name":"memory_metric_processor","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"exporter","type":[{"name":"Exporter","namespace":"Flow\\Telemetry\\Exporter","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"errorHandler","type":[{"name":"ErrorHandler","namespace":"Flow\\Telemetry\\ErrorHandler","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Telemetry\\ErrorHandler\\ErrorLogHandler::..."}],"return_type":[{"name":"MemoryMetricProcessor","namespace":"Flow\\Telemetry\\Provider\\Memory","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIE1lbW9yeU1ldHJpY1Byb2Nlc3Nvci4KICoKICogQHBhcmFtIEV4cG9ydGVyICRleHBvcnRlciBUaGUgZXhwb3J0ZXIgdG8gc2VuZCBtZXRyaWNzIHRvCiAqIEBwYXJhbSBFcnJvckhhbmRsZXIgJGVycm9ySGFuZGxlciBIYW5kbGVyIGZvciBUaHJvd2FibGVzIHJhaXNlZCBieSB0aGUgZXhwb3J0ZXIKICov"},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":389,"slug":"memory-log-processor","name":"memory_log_processor","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"exporter","type":[{"name":"Exporter","namespace":"Flow\\Telemetry\\Exporter","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"errorHandler","type":[{"name":"ErrorHandler","namespace":"Flow\\Telemetry\\ErrorHandler","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Telemetry\\ErrorHandler\\ErrorLogHandler::..."}],"return_type":[{"name":"MemoryLogProcessor","namespace":"Flow\\Telemetry\\Provider\\Memory","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIE1lbW9yeUxvZ1Byb2Nlc3Nvci4KICoKICogQHBhcmFtIEV4cG9ydGVyICRleHBvcnRlciBUaGUgZXhwb3J0ZXIgdG8gc2VuZCBsb2dzIHRvCiAqIEBwYXJhbSBFcnJvckhhbmRsZXIgJGVycm9ySGFuZGxlciBIYW5kbGVyIGZvciBUaHJvd2FibGVzIHJhaXNlZCBieSB0aGUgZXhwb3J0ZXIKICov"},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":407,"slug":"tracer-provider","name":"tracer_provider","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"processor","type":[{"name":"SpanProcessor","namespace":"Flow\\Telemetry\\Tracer","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"clock","type":[{"name":"ClockInterface","namespace":"Psr\\Clock","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"contextStorage","type":[{"name":"ContextStorage","namespace":"Flow\\Telemetry\\Context","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"sampler","type":[{"name":"Sampler","namespace":"Flow\\Telemetry\\Tracer\\Sampler","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Telemetry\\Tracer\\Sampler\\ParentBasedSampler::..."},{"name":"limits","type":[{"name":"SpanLimits","namespace":"Flow\\Telemetry\\Tracer","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Telemetry\\Tracer\\SpanLimits::..."},{"name":"errorHandler","type":[{"name":"ErrorHandler","namespace":"Flow\\Telemetry\\ErrorHandler","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Telemetry\\ErrorHandler\\ErrorLogHandler::..."}],"return_type":[{"name":"TracerProvider","namespace":"Flow\\Telemetry\\Tracer","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFRyYWNlclByb3ZpZGVyLgogKgogKiBAcGFyYW0gU3BhblByb2Nlc3NvciAkcHJvY2Vzc29yIFRoZSBwcm9jZXNzb3IgZm9yIHNwYW5zCiAqIEBwYXJhbSBDbG9ja0ludGVyZmFjZSAkY2xvY2sgVGhlIGNsb2NrIGZvciB0aW1lc3RhbXBzCiAqIEBwYXJhbSBDb250ZXh0U3RvcmFnZSAkY29udGV4dFN0b3JhZ2UgU3RvcmFnZSBmb3IgY29udGV4dCBwcm9wYWdhdGlvbgogKiBAcGFyYW0gU2FtcGxlciAkc2FtcGxlciBTYW1wbGluZyBzdHJhdGVneSBmb3Igc3BhbnMKICogQHBhcmFtIFNwYW5MaW1pdHMgJGxpbWl0cyBMaW1pdHMgZm9yIHNwYW4gYXR0cmlidXRlcywgZXZlbnRzLCBhbmQgbGlua3MKICogQHBhcmFtIEVycm9ySGFuZGxlciAkZXJyb3JIYW5kbGVyIEhhbmRsZXIgZm9yIHJ1bnRpbWUgVGhyb3dhYmxlcyByYWlzZWQgYnkgdGhlIHByb2Nlc3NvcgogKi8="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":428,"slug":"logger-provider","name":"logger_provider","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"processor","type":[{"name":"LogProcessor","namespace":"Flow\\Telemetry\\Logger","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"clock","type":[{"name":"ClockInterface","namespace":"Psr\\Clock","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"contextStorage","type":[{"name":"ContextStorage","namespace":"Flow\\Telemetry\\Context","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"limits","type":[{"name":"LogRecordLimits","namespace":"Flow\\Telemetry\\Logger","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Telemetry\\Logger\\LogRecordLimits::..."},{"name":"errorHandler","type":[{"name":"ErrorHandler","namespace":"Flow\\Telemetry\\ErrorHandler","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Telemetry\\ErrorHandler\\ErrorLogHandler::..."}],"return_type":[{"name":"LoggerProvider","namespace":"Flow\\Telemetry\\Logger","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIExvZ2dlclByb3ZpZGVyLgogKgogKiBAcGFyYW0gTG9nUHJvY2Vzc29yICRwcm9jZXNzb3IgVGhlIHByb2Nlc3NvciBmb3IgbG9ncwogKiBAcGFyYW0gQ2xvY2tJbnRlcmZhY2UgJGNsb2NrIFRoZSBjbG9jayBmb3IgdGltZXN0YW1wcwogKiBAcGFyYW0gQ29udGV4dFN0b3JhZ2UgJGNvbnRleHRTdG9yYWdlIFN0b3JhZ2UgZm9yIHNwYW4gY29ycmVsYXRpb24KICogQHBhcmFtIExvZ1JlY29yZExpbWl0cyAkbGltaXRzIExpbWl0cyBmb3IgbG9nIHJlY29yZCBhdHRyaWJ1dGVzCiAqIEBwYXJhbSBFcnJvckhhbmRsZXIgJGVycm9ySGFuZGxlciBIYW5kbGVyIGZvciBydW50aW1lIFRocm93YWJsZXMgcmFpc2VkIGJ5IHRoZSBwcm9jZXNzb3IKICov"},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":449,"slug":"meter-provider","name":"meter_provider","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"processor","type":[{"name":"MetricProcessor","namespace":"Flow\\Telemetry\\Meter","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"clock","type":[{"name":"ClockInterface","namespace":"Psr\\Clock","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"temporality","type":[{"name":"AggregationTemporality","namespace":"Flow\\Telemetry\\Meter","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Telemetry\\Meter\\AggregationTemporality::..."},{"name":"exemplarFilter","type":[{"name":"ExemplarFilter","namespace":"Flow\\Telemetry\\Meter\\Exemplar","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Telemetry\\Meter\\Exemplar\\TraceBasedExemplarFilter::..."},{"name":"limits","type":[{"name":"MetricLimits","namespace":"Flow\\Telemetry\\Meter","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Telemetry\\Meter\\MetricLimits::..."},{"name":"errorHandler","type":[{"name":"ErrorHandler","namespace":"Flow\\Telemetry\\ErrorHandler","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Telemetry\\ErrorHandler\\ErrorLogHandler::..."}],"return_type":[{"name":"MeterProvider","namespace":"Flow\\Telemetry\\Meter","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIE1ldGVyUHJvdmlkZXIuCiAqCiAqIEBwYXJhbSBNZXRyaWNQcm9jZXNzb3IgJHByb2Nlc3NvciBUaGUgcHJvY2Vzc29yIGZvciBtZXRyaWNzCiAqIEBwYXJhbSBDbG9ja0ludGVyZmFjZSAkY2xvY2sgVGhlIGNsb2NrIGZvciB0aW1lc3RhbXBzCiAqIEBwYXJhbSBBZ2dyZWdhdGlvblRlbXBvcmFsaXR5ICR0ZW1wb3JhbGl0eSBBZ2dyZWdhdGlvbiB0ZW1wb3JhbGl0eSBmb3IgbWV0cmljcwogKiBAcGFyYW0gRXhlbXBsYXJGaWx0ZXIgJGV4ZW1wbGFyRmlsdGVyIEZpbHRlciBmb3IgZXhlbXBsYXIgc2FtcGxpbmcgKGRlZmF1bHQ6IFRyYWNlQmFzZWRFeGVtcGxhckZpbHRlcikKICogQHBhcmFtIE1ldHJpY0xpbWl0cyAkbGltaXRzIENhcmRpbmFsaXR5IGxpbWl0cyBmb3IgbWV0cmljIGluc3RydW1lbnRzCiAqIEBwYXJhbSBFcnJvckhhbmRsZXIgJGVycm9ySGFuZGxlciBIYW5kbGVyIGZvciBydW50aW1lIFRocm93YWJsZXMgcmFpc2VkIGJ5IHRoZSBwcm9jZXNzb3IKICov"},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":472,"slug":"telemetry","name":"telemetry","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"resource","type":[{"name":"Resource","namespace":"Flow\\Telemetry","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"tracerProvider","type":[{"name":"TracerProvider","namespace":"Flow\\Telemetry\\Tracer","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"meterProvider","type":[{"name":"MeterProvider","namespace":"Flow\\Telemetry\\Meter","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"loggerProvider","type":[{"name":"LoggerProvider","namespace":"Flow\\Telemetry\\Logger","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"errorHandler","type":[{"name":"ErrorHandler","namespace":"Flow\\Telemetry\\ErrorHandler","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Telemetry\\ErrorHandler\\ErrorLogHandler::..."}],"return_type":[{"name":"Telemetry","namespace":"Flow\\Telemetry","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIG5ldyBUZWxlbWV0cnkgaW5zdGFuY2Ugd2l0aCB0aGUgZ2l2ZW4gcHJvdmlkZXJzLgogKgogKiBJZiBwcm92aWRlcnMgYXJlIG5vdCBzcGVjaWZpZWQsIHZvaWQgcHJvdmlkZXJzIChuby1vcCkgYXJlIHVzZWQuCiAqCiAqIEBwYXJhbSBcRmxvd1xUZWxlbWV0cnlcUmVzb3VyY2UgJHJlc291cmNlIFRoZSByZXNvdXJjZSBkZXNjcmliaW5nIHRoZSBlbnRpdHkgcHJvZHVjaW5nIHRlbGVtZXRyeQogKiBAcGFyYW0gbnVsbHxUcmFjZXJQcm92aWRlciAkdHJhY2VyUHJvdmlkZXIgVGhlIHRyYWNlciBwcm92aWRlciAobnVsbCBmb3Igdm9pZC9kaXNhYmxlZCkKICogQHBhcmFtIG51bGx8TWV0ZXJQcm92aWRlciAkbWV0ZXJQcm92aWRlciBUaGUgbWV0ZXIgcHJvdmlkZXIgKG51bGwgZm9yIHZvaWQvZGlzYWJsZWQpCiAqIEBwYXJhbSBudWxsfExvZ2dlclByb3ZpZGVyICRsb2dnZXJQcm92aWRlciBUaGUgbG9nZ2VyIHByb3ZpZGVyIChudWxsIGZvciB2b2lkL2Rpc2FibGVkKQogKiBAcGFyYW0gRXJyb3JIYW5kbGVyICRlcnJvckhhbmRsZXIgSGFuZGxlciBwcm9wYWdhdGVkIHRvIGRlZmF1bHQgdm9pZCBwcm92aWRlcnMgd2hlbiBleHBsaWNpdCBvbmVzIGFyZSBub3Qgc3VwcGxpZWQKICov"},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":508,"slug":"instrumentation-scope","name":"instrumentation_scope","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"name","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"version","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'unknown'"},{"name":"schemaUrl","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"attributes","type":[{"name":"Attributes","namespace":"Flow\\Telemetry","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Telemetry\\Attributes::..."}],"return_type":[{"name":"InstrumentationScope","namespace":"Flow\\Telemetry","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBJbnN0cnVtZW50YXRpb25TY29wZS4KICoKICogQHBhcmFtIHN0cmluZyAkbmFtZSBUaGUgaW5zdHJ1bWVudGF0aW9uIHNjb3BlIG5hbWUKICogQHBhcmFtIHN0cmluZyAkdmVyc2lvbiBUaGUgaW5zdHJ1bWVudGF0aW9uIHNjb3BlIHZlcnNpb24KICogQHBhcmFtIG51bGx8c3RyaW5nICRzY2hlbWFVcmwgT3B0aW9uYWwgc2NoZW1hIFVSTAogKi8="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":525,"slug":"batching-span-processor","name":"batching_span_processor","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"exporter","type":[{"name":"Exporter","namespace":"Flow\\Telemetry\\Exporter","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"batchSize","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"512"},{"name":"errorHandler","type":[{"name":"ErrorHandler","namespace":"Flow\\Telemetry\\ErrorHandler","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Telemetry\\ErrorHandler\\ErrorLogHandler::..."}],"return_type":[{"name":"BatchingSpanProcessor","namespace":"Flow\\Telemetry\\Tracer\\Processor","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIEJhdGNoaW5nU3BhblByb2Nlc3Nvci4KICoKICogQHBhcmFtIEV4cG9ydGVyICRleHBvcnRlciBUaGUgZXhwb3J0ZXIgdG8gc2VuZCBzcGFucyB0bwogKiBAcGFyYW0gaW50ICRiYXRjaFNpemUgTnVtYmVyIG9mIHNwYW5zIHRvIGNvbGxlY3QgYmVmb3JlIGV4cG9ydGluZyAoZGVmYXVsdCA1MTIpCiAqIEBwYXJhbSBFcnJvckhhbmRsZXIgJGVycm9ySGFuZGxlciBIYW5kbGVyIGZvciBUaHJvd2FibGVzIHJhaXNlZCBieSB0aGUgZXhwb3J0ZXIKICov"},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":540,"slug":"pass-through-span-processor","name":"pass_through_span_processor","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"exporter","type":[{"name":"Exporter","namespace":"Flow\\Telemetry\\Exporter","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"errorHandler","type":[{"name":"ErrorHandler","namespace":"Flow\\Telemetry\\ErrorHandler","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Telemetry\\ErrorHandler\\ErrorLogHandler::..."}],"return_type":[{"name":"PassThroughSpanProcessor","namespace":"Flow\\Telemetry\\Tracer\\Processor","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFBhc3NUaHJvdWdoU3BhblByb2Nlc3Nvci4KICoKICogQHBhcmFtIEV4cG9ydGVyICRleHBvcnRlciBUaGUgZXhwb3J0ZXIgdG8gc2VuZCBzcGFucyB0bwogKiBAcGFyYW0gRXJyb3JIYW5kbGVyICRlcnJvckhhbmRsZXIgSGFuZGxlciBmb3IgVGhyb3dhYmxlcyByYWlzZWQgYnkgdGhlIGV4cG9ydGVyCiAqLw=="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":555,"slug":"batching-metric-processor","name":"batching_metric_processor","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"exporter","type":[{"name":"Exporter","namespace":"Flow\\Telemetry\\Exporter","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"batchSize","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"512"},{"name":"errorHandler","type":[{"name":"ErrorHandler","namespace":"Flow\\Telemetry\\ErrorHandler","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Telemetry\\ErrorHandler\\ErrorLogHandler::..."}],"return_type":[{"name":"BatchingMetricProcessor","namespace":"Flow\\Telemetry\\Meter\\Processor","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIEJhdGNoaW5nTWV0cmljUHJvY2Vzc29yLgogKgogKiBAcGFyYW0gRXhwb3J0ZXIgJGV4cG9ydGVyIFRoZSBleHBvcnRlciB0byBzZW5kIG1ldHJpY3MgdG8KICogQHBhcmFtIGludCAkYmF0Y2hTaXplIE51bWJlciBvZiBtZXRyaWNzIHRvIGNvbGxlY3QgYmVmb3JlIGV4cG9ydGluZyAoZGVmYXVsdCA1MTIpCiAqIEBwYXJhbSBFcnJvckhhbmRsZXIgJGVycm9ySGFuZGxlciBIYW5kbGVyIGZvciBUaHJvd2FibGVzIHJhaXNlZCBieSB0aGUgZXhwb3J0ZXIKICov"},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":570,"slug":"pass-through-metric-processor","name":"pass_through_metric_processor","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"exporter","type":[{"name":"Exporter","namespace":"Flow\\Telemetry\\Exporter","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"errorHandler","type":[{"name":"ErrorHandler","namespace":"Flow\\Telemetry\\ErrorHandler","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Telemetry\\ErrorHandler\\ErrorLogHandler::..."}],"return_type":[{"name":"PassThroughMetricProcessor","namespace":"Flow\\Telemetry\\Meter\\Processor","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFBhc3NUaHJvdWdoTWV0cmljUHJvY2Vzc29yLgogKgogKiBAcGFyYW0gRXhwb3J0ZXIgJGV4cG9ydGVyIFRoZSBleHBvcnRlciB0byBzZW5kIG1ldHJpY3MgdG8KICogQHBhcmFtIEVycm9ySGFuZGxlciAkZXJyb3JIYW5kbGVyIEhhbmRsZXIgZm9yIFRocm93YWJsZXMgcmFpc2VkIGJ5IHRoZSBleHBvcnRlcgogKi8="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":585,"slug":"batching-log-processor","name":"batching_log_processor","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"exporter","type":[{"name":"Exporter","namespace":"Flow\\Telemetry\\Exporter","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"batchSize","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"512"},{"name":"errorHandler","type":[{"name":"ErrorHandler","namespace":"Flow\\Telemetry\\ErrorHandler","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Telemetry\\ErrorHandler\\ErrorLogHandler::..."}],"return_type":[{"name":"BatchingLogProcessor","namespace":"Flow\\Telemetry\\Logger\\Processor","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIEJhdGNoaW5nTG9nUHJvY2Vzc29yLgogKgogKiBAcGFyYW0gRXhwb3J0ZXIgJGV4cG9ydGVyIFRoZSBleHBvcnRlciB0byBzZW5kIGxvZ3MgdG8KICogQHBhcmFtIGludCAkYmF0Y2hTaXplIE51bWJlciBvZiBsb2dzIHRvIGNvbGxlY3QgYmVmb3JlIGV4cG9ydGluZyAoZGVmYXVsdCA1MTIpCiAqIEBwYXJhbSBFcnJvckhhbmRsZXIgJGVycm9ySGFuZGxlciBIYW5kbGVyIGZvciBUaHJvd2FibGVzIHJhaXNlZCBieSB0aGUgZXhwb3J0ZXIKICov"},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":600,"slug":"pass-through-log-processor","name":"pass_through_log_processor","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"exporter","type":[{"name":"Exporter","namespace":"Flow\\Telemetry\\Exporter","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"errorHandler","type":[{"name":"ErrorHandler","namespace":"Flow\\Telemetry\\ErrorHandler","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Telemetry\\ErrorHandler\\ErrorLogHandler::..."}],"return_type":[{"name":"PassThroughLogProcessor","namespace":"Flow\\Telemetry\\Logger\\Processor","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFBhc3NUaHJvdWdoTG9nUHJvY2Vzc29yLgogKgogKiBAcGFyYW0gRXhwb3J0ZXIgJGV4cG9ydGVyIFRoZSBleHBvcnRlciB0byBzZW5kIGxvZ3MgdG8KICogQHBhcmFtIEVycm9ySGFuZGxlciAkZXJyb3JIYW5kbGVyIEhhbmRsZXIgZm9yIFRocm93YWJsZXMgcmFpc2VkIGJ5IHRoZSBleHBvcnRlcgogKi8="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":615,"slug":"pipeline-log-processor","name":"pipeline_log_processor","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"middleware","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"sink","type":[{"name":"LogSink","namespace":"Flow\\Telemetry\\Logger","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"PipelineLogProcessor","namespace":"Flow\\Telemetry\\Logger\\Processor","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFBpcGVsaW5lTG9nUHJvY2Vzc29yOiBydW4gZWFjaCBsb2cgZW50cnkgdGhyb3VnaCBhbiBvcmRlcmVkIGNoYWluIG9mCiAqIG1pZGRsZXdhcmUsIHRoZW4gZm9yd2FyZCB0aGUgc3Vydml2b3JzIHRvIGEgc2luZ2xlIHNpbmsuCiAqCiAqIEBwYXJhbSBsaXN0PExvZ01pZGRsZXdhcmU+ICRtaWRkbGV3YXJlIHJ1biBpbiBvcmRlcjsgdGhlIGZpcnN0IHRvIGRyb3AgYW4gZW50cnkgc2hvcnQtY2lyY3VpdHMgdGhlIHJlc3QKICogQHBhcmFtIExvZ1NpbmsgJHNpbmsgdGhlIHRlcm1pbmFsIHByb2Nlc3NvciB0aGF0IGV4cG9ydHMgc3Vydml2aW5nIGVudHJpZXMKICov"},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":627,"slug":"enriching-log-middleware","name":"enriching_log_middleware","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"attributes","type":[{"name":"Attributes","namespace":"Flow\\Telemetry","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"EnrichingLogMiddleware","namespace":"Flow\\Telemetry\\Logger\\Middleware","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBFbnJpY2hpbmdMb2dNaWRkbGV3YXJlIHRoYXQgbWVyZ2VzIGRlZmF1bHQgYXR0cmlidXRlcyBpbnRvIGV2ZXJ5IGxvZwogKiBlbnRyeS4gQXR0cmlidXRlcyBzZXQgYXQgdGhlIGNhbGwgc2l0ZSB3aW4gb3ZlciB0aGVzZSBkZWZhdWx0cy4KICoKICogQHBhcmFtIGFycmF5PHN0cmluZywgYXJyYXk8YXJyYXkta2V5LCBtaXhlZD58Ym9vbHxcRGF0ZVRpbWVJbnRlcmZhY2V8ZmxvYXR8aW50fHN0cmluZ3xcVGhyb3dhYmxlPnxBdHRyaWJ1dGVzICRhdHRyaWJ1dGVzCiAqLw=="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":638,"slug":"attribute-filtering-log-middleware","name":"attribute_filtering_log_middleware","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"filter","type":[{"name":"AttributeFilter","namespace":"Flow\\Telemetry\\Filter","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"AttributeFilteringLogMiddleware","namespace":"Flow\\Telemetry\\Logger\\Middleware","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBBdHRyaWJ1dGVGaWx0ZXJpbmdMb2dNaWRkbGV3YXJlIHRoYXQgZHJvcHMgbG9nIGVudHJpZXMgbWF0Y2hpbmcgdGhlIGZpbHRlci4KICoKICogQHBhcmFtIEF0dHJpYnV0ZUZpbHRlciAkZmlsdGVyIFRoZSBhdHRyaWJ1dGUgZmlsdGVyIHRvIGFwcGx5CiAqLw=="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":649,"slug":"severity-filtering-log-middleware","name":"severity_filtering_log_middleware","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"minimumSeverity","type":[{"name":"Severity","namespace":"Flow\\Telemetry\\Logger","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Telemetry\\Logger\\Severity::..."}],"return_type":[{"name":"SeverityFilteringLogMiddleware","namespace":"Flow\\Telemetry\\Logger\\Middleware","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFNldmVyaXR5RmlsdGVyaW5nTG9nTWlkZGxld2FyZSB0aGF0IGRyb3BzIGxvZyBlbnRyaWVzIGJlbG93IGEgbWluaW11bSBzZXZlcml0eS4KICoKICogQHBhcmFtIFNldmVyaXR5ICRtaW5pbXVtU2V2ZXJpdHkgTWluaW11bSBzZXZlcml0eSBsZXZlbCAoZGVmYXVsdDogSU5GTykKICov"},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":663,"slug":"attribute-rule","name":"attribute_rule","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"path","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"mode","type":[{"name":"MatchMode","namespace":"Flow\\Telemetry\\Filter","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"expected","type":[{"name":"DateTimeInterface","namespace":"","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"caseSensitive","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"}],"return_type":[{"name":"AttributeRule","namespace":"Flow\\Telemetry\\Filter","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIHNpbmdsZSBhdHRyaWJ1dGUtbWF0Y2hpbmcgcnVsZSBmb3IgYW4gQXR0cmlidXRlRmlsdGVyLgogKgogKiBAcGFyYW0gYXJyYXk8c3RyaW5nPnxzdHJpbmcgJHBhdGggYXR0cmlidXRlIHBhdGg6IGEgdG9wLWxldmVsIGtleSwgb3Igc2VnbWVudHMgZGVzY2VuZGluZyBpbnRvIG5lc3RlZCBhcnJheSB2YWx1ZXMKICogQHBhcmFtIE1hdGNoTW9kZSAkbW9kZSBjb21wYXJpc29uIGFwcGxpZWQgYmV0d2VlbiB0aGUgdmFsdWUgYXQgdGhlIHBhdGggYW5kIHRoZSBleHBlY3RlZCB2YWx1ZQogKiBAcGFyYW0gYm9vbHxEYXRlVGltZUludGVyZmFjZXxmbG9hdHxpbnR8c3RyaW5nICRleHBlY3RlZCBleHBlY3RlZCB2YWx1ZSAobXVzdCBiZSBhIHN0cmluZyBmb3IgdGhlIHBhdHRlcm4gbW9kZXMpCiAqIEBwYXJhbSBib29sICRjYXNlU2Vuc2l0aXZlIGFwcGxpZXMgdG8gdGhlIHN1YnN0cmluZyBtb2RlcyBvbmx5IChTVEFSVFNfV0lUSCwgRU5EU19XSVRILCBDT05UQUlOUykKICov"},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":676,"slug":"all","name":"all","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"matchers","type":[{"name":"Matcher","namespace":"Flow\\Telemetry\\Filter","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"All","namespace":"Flow\\Telemetry\\Filter","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENvbWJpbmUgbWF0Y2hlcnMgc28gdGhhdCBldmVyeSBvbmUgbXVzdCBtYXRjaCAobG9naWNhbCBBTkQpLgogKi8="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":685,"slug":"any","name":"any","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"matchers","type":[{"name":"Matcher","namespace":"Flow\\Telemetry\\Filter","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"Any","namespace":"Flow\\Telemetry\\Filter","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENvbWJpbmUgbWF0Y2hlcnMgc28gdGhhdCBhdCBsZWFzdCBvbmUgbXVzdCBtYXRjaCAobG9naWNhbCBPUikuCiAqLw=="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":694,"slug":"not","name":"not","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"matcher","type":[{"name":"Matcher","namespace":"Flow\\Telemetry\\Filter","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Not","namespace":"Flow\\Telemetry\\Filter","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIE5lZ2F0ZSBhIG1hdGNoZXIgKGxvZ2ljYWwgTk9UKS4KICov"},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":713,"slug":"attribute-filter","name":"attribute_filter","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"matcher","type":[{"name":"Matcher","namespace":"Flow\\Telemetry\\Filter","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"exclude","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"sources","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[...]"},{"name":"cacheDir","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"cacheDirPermissions","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"448"}],"return_type":[{"name":"AttributeFilter","namespace":"Flow\\Telemetry\\Filter","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBBdHRyaWJ1dGVGaWx0ZXIgZnJvbSBhIG1hdGNoZXIuCiAqCiAqIEBwYXJhbSBNYXRjaGVyICRtYXRjaGVyIHRoZSBtYXRjaGVyIHRvIGV2YWx1YXRlIGFnYWluc3QgYSBzaWduYWwncyBhdHRyaWJ1dGVzIChjb21wb3NlIHdpdGggYWxsKCksIGFueSgpLCBub3QoKSkKICogQHBhcmFtIGJvb2wgJGV4Y2x1ZGUgd2hlbiB0cnVlIChkZWZhdWx0KSBhIG1hdGNoIGRyb3BzIHRoZSBzaWduYWw7IHdoZW4gZmFsc2Ugb25seSBtYXRjaGluZyBzaWduYWxzIGFyZSBrZXB0CiAqIEBwYXJhbSBsaXN0PEF0dHJpYnV0ZVNvdXJjZT4gJHNvdXJjZXMgd2hpY2ggYXR0cmlidXRlIHNldHMgdG8gaW5zcGVjdCAoc2lnbmFsLCByZXNvdXJjZSBhbmQvb3Igc2NvcGUpOyB0aGUgbWF0Y2hlciBpcwogKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9SLWNvbWJpbmVkIGFjcm9zcyB0aGVtLCBkZWZhdWx0aW5nIHRvIHRoZSBzaWduYWwncyBvd24gYXR0cmlidXRlcwogKiBAcGFyYW0gbnVsbHxzdHJpbmcgJGNhY2hlRGlyIGRpcmVjdG9yeSBmb3IgdGhlIGdlbmVyYXRlZCBtYXRjaGVyIGZpbGUgKGRlZmF1bHRzIHRvIHRoZSBzeXN0ZW0gdGVtcCBkaXJlY3RvcnkpLiBJdCBpcwogKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGByZXF1aXJlYGQsIHNvIGl0IE1VU1QgYmUgdHJ1c3RlZCAtIG5vdCB3cml0YWJsZSBieSB1bnRydXN0ZWQgdXNlcnMuIFByZWZlciBhbgogKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGxpY2F0aW9uLXByaXZhdGUgZGlyZWN0b3J5IG92ZXIgdGhlIHNoYXJlZCBzeXN0ZW0gdGVtcCBpbiBtdWx0aS10ZW5hbnQgZW52aXJvbm1lbnRzLgogKiBAcGFyYW0gaW50ICRjYWNoZURpclBlcm1pc3Npb25zIG1vZGUgYXBwbGllZCB3aGVuIHRoZSBjYWNoZSBkaXJlY3RvcnkgaXMgY3JlYXRlZCAob2N0YWwsIHN1YmplY3QgdG8gdW1hc2s7IGRlZmF1bHRzCiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG8gMDcwMCAtIG93bmVyIG9ubHksIHNpbmNlIHRoZSBkaXJlY3RvcnkgaG9sZHMgYHJlcXVpcmVgZCBQSFApCiAqLw=="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":730,"slug":"attribute-filtering-metric-processor","name":"attribute_filtering_metric_processor","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"processor","type":[{"name":"MetricProcessor","namespace":"Flow\\Telemetry\\Meter","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"filter","type":[{"name":"AttributeFilter","namespace":"Flow\\Telemetry\\Filter","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"AttributeFilteringMetricProcessor","namespace":"Flow\\Telemetry\\Meter\\Processor","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBBdHRyaWJ1dGVGaWx0ZXJpbmdNZXRyaWNQcm9jZXNzb3IuCiAqCiAqIEBwYXJhbSBNZXRyaWNQcm9jZXNzb3IgJHByb2Nlc3NvciBUaGUgcHJvY2Vzc29yIHRvIHdyYXAKICogQHBhcmFtIEF0dHJpYnV0ZUZpbHRlciAkZmlsdGVyIFRoZSBhdHRyaWJ1dGUgZmlsdGVyIHRvIGFwcGx5CiAqLw=="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":744,"slug":"attribute-filtering-span-processor","name":"attribute_filtering_span_processor","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"processor","type":[{"name":"SpanProcessor","namespace":"Flow\\Telemetry\\Tracer","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"filter","type":[{"name":"AttributeFilter","namespace":"Flow\\Telemetry\\Filter","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"AttributeFilteringSpanProcessor","namespace":"Flow\\Telemetry\\Tracer\\Processor","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBBdHRyaWJ1dGVGaWx0ZXJpbmdTcGFuUHJvY2Vzc29yLgogKgogKiBAcGFyYW0gU3BhblByb2Nlc3NvciAkcHJvY2Vzc29yIFRoZSBwcm9jZXNzb3IgdG8gd3JhcAogKiBAcGFyYW0gQXR0cmlidXRlRmlsdGVyICRmaWx0ZXIgVGhlIGF0dHJpYnV0ZSBmaWx0ZXIgdG8gYXBwbHkKICov"},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":763,"slug":"console-exporter","name":"console_exporter","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"colors","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"maxLogBodyLength","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"100"},{"name":"logOptions","type":[{"name":"ConsoleLogOptions","namespace":"Flow\\Telemetry\\Provider\\Console","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Telemetry\\Provider\\Console\\ConsoleLogOptions::..."},{"name":"metricOptions","type":[{"name":"ConsoleMetricOptions","namespace":"Flow\\Telemetry\\Provider\\Console","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Telemetry\\Provider\\Console\\ConsoleMetricOptions::..."},{"name":"spanOptions","type":[{"name":"ConsoleSpanOptions","namespace":"Flow\\Telemetry\\Provider\\Console","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Telemetry\\Provider\\Console\\ConsoleSpanOptions::..."}],"return_type":[{"name":"ConsoleExporter","namespace":"Flow\\Telemetry\\Provider\\Console","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIHVuaWZpZWQgQ29uc29sZUV4cG9ydGVyIGZvciBsb2dzLCBtZXRyaWNzLCBhbmQgc3BhbnMuCiAqCiAqIE91dHB1dHMgdGVsZW1ldHJ5IHRvIHRoZSBjb25zb2xlIHdpdGggQVNDSUkgdGFibGUgZm9ybWF0dGluZyBhbmQgb3B0aW9uYWwgQU5TSSBjb2xvcnMuCiAqCiAqIEBwYXJhbSBib29sICRjb2xvcnMgV2hldGhlciB0byB1c2UgQU5TSSBjb2xvcnMgKGRlZmF1bHQ6IHRydWUpCiAqIEBwYXJhbSBudWxsfGludCAkbWF4TG9nQm9keUxlbmd0aCBNYXhpbXVtIGxlbmd0aCBmb3IgbG9nIGJvZHkrYXR0cmlidXRlcyBjb2x1bW4gKG51bGwgPSBubyBsaW1pdCkKICogQHBhcmFtIENvbnNvbGVMb2dPcHRpb25zICRsb2dPcHRpb25zIERpc3BsYXkgb3B0aW9ucyBmb3IgbG9nIHJlY29yZHMKICogQHBhcmFtIENvbnNvbGVNZXRyaWNPcHRpb25zICRtZXRyaWNPcHRpb25zIERpc3BsYXkgb3B0aW9ucyBmb3IgbWV0cmljcwogKiBAcGFyYW0gQ29uc29sZVNwYW5PcHRpb25zICRzcGFuT3B0aW9ucyBEaXNwbGF5IG9wdGlvbnMgZm9yIHNwYW5zCiAqLw=="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":777,"slug":"console-span-options","name":"console_span_options","namespace":"Flow\\Telemetry\\DSL","parameters":[],"return_type":[{"name":"ConsoleSpanOptions","namespace":"Flow\\Telemetry\\Provider\\Console","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBDb25zb2xlU3Bhbk9wdGlvbnMgd2l0aCBhbGwgZGlzcGxheSBvcHRpb25zIGVuYWJsZWQgKGRlZmF1bHQgYmVoYXZpb3IpLgogKi8="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":786,"slug":"console-span-options-minimal","name":"console_span_options_minimal","namespace":"Flow\\Telemetry\\DSL","parameters":[],"return_type":[{"name":"ConsoleSpanOptions","namespace":"Flow\\Telemetry\\Provider\\Console","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBDb25zb2xlU3Bhbk9wdGlvbnMgd2l0aCBtaW5pbWFsIGRpc3BsYXkgKGxlZ2FjeSBjb21wYWN0IGZvcm1hdCkuCiAqLw=="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":795,"slug":"console-log-options","name":"console_log_options","namespace":"Flow\\Telemetry\\DSL","parameters":[],"return_type":[{"name":"ConsoleLogOptions","namespace":"Flow\\Telemetry\\Provider\\Console","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBDb25zb2xlTG9nT3B0aW9ucyB3aXRoIGFsbCBkaXNwbGF5IG9wdGlvbnMgZW5hYmxlZCAoZGVmYXVsdCBiZWhhdmlvcikuCiAqLw=="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":804,"slug":"console-log-options-minimal","name":"console_log_options_minimal","namespace":"Flow\\Telemetry\\DSL","parameters":[],"return_type":[{"name":"ConsoleLogOptions","namespace":"Flow\\Telemetry\\Provider\\Console","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBDb25zb2xlTG9nT3B0aW9ucyB3aXRoIG1pbmltYWwgZGlzcGxheSAobGVnYWN5IGNvbXBhY3QgZm9ybWF0KS4KICov"},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":813,"slug":"console-metric-options","name":"console_metric_options","namespace":"Flow\\Telemetry\\DSL","parameters":[],"return_type":[{"name":"ConsoleMetricOptions","namespace":"Flow\\Telemetry\\Provider\\Console","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBDb25zb2xlTWV0cmljT3B0aW9ucyB3aXRoIGFsbCBkaXNwbGF5IG9wdGlvbnMgZW5hYmxlZCAoZGVmYXVsdCBiZWhhdmlvcikuCiAqLw=="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":822,"slug":"console-metric-options-minimal","name":"console_metric_options_minimal","namespace":"Flow\\Telemetry\\DSL","parameters":[],"return_type":[{"name":"ConsoleMetricOptions","namespace":"Flow\\Telemetry\\Provider\\Console","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBDb25zb2xlTWV0cmljT3B0aW9ucyB3aXRoIG1pbmltYWwgZGlzcGxheSAobGVnYWN5IGNvbXBhY3QgZm9ybWF0KS4KICov"},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":831,"slug":"always-on-exemplar-filter","name":"always_on_exemplar_filter","namespace":"Flow\\Telemetry\\DSL","parameters":[],"return_type":[{"name":"AlwaysOnExemplarFilter","namespace":"Flow\\Telemetry\\Meter\\Exemplar","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBBbHdheXNPbkV4ZW1wbGFyRmlsdGVyLgogKi8="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":840,"slug":"always-off-exemplar-filter","name":"always_off_exemplar_filter","namespace":"Flow\\Telemetry\\DSL","parameters":[],"return_type":[{"name":"AlwaysOffExemplarFilter","namespace":"Flow\\Telemetry\\Meter\\Exemplar","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBBbHdheXNPZmZFeGVtcGxhckZpbHRlci4KICov"},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":849,"slug":"trace-based-exemplar-filter","name":"trace_based_exemplar_filter","namespace":"Flow\\Telemetry\\DSL","parameters":[],"return_type":[{"name":"TraceBasedExemplarFilter","namespace":"Flow\\Telemetry\\Meter\\Exemplar","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFRyYWNlQmFzZWRFeGVtcGxhckZpbHRlci4KICov"},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":858,"slug":"always-on-sampler","name":"always_on_sampler","namespace":"Flow\\Telemetry\\DSL","parameters":[],"return_type":[{"name":"AlwaysOnSampler","namespace":"Flow\\Telemetry\\Tracer\\Sampler","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBBbHdheXNPblNhbXBsZXIuIFJlY29yZHMgYW5kIHNhbXBsZXMgZXZlcnkgc3Bhbi4KICov"},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":867,"slug":"always-off-sampler","name":"always_off_sampler","namespace":"Flow\\Telemetry\\DSL","parameters":[],"return_type":[{"name":"AlwaysOffSampler","namespace":"Flow\\Telemetry\\Tracer\\Sampler","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBBbHdheXNPZmZTYW1wbGVyLiBEcm9wcyBldmVyeSBzcGFuLgogKi8="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":878,"slug":"trace-id-ratio-based-sampler","name":"trace_id_ratio_based_sampler","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"ratio","type":[{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"TraceIdRatioBasedSampler","namespace":"Flow\\Telemetry\\Tracer\\Sampler","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFRyYWNlSWRSYXRpb0Jhc2VkU2FtcGxlci4gU2FtcGxlcyBhIGRldGVybWluaXN0aWMgZnJhY3Rpb24gb2YgdHJhY2VzLgogKgogKiBAcGFyYW0gZmxvYXQgJHJhdGlvIFNhbXBsaW5nIHByb2JhYmlsaXR5IGJldHdlZW4gMC4wIGFuZCAxLjAKICov"},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":890,"slug":"parent-based-sampler","name":"parent_based_sampler","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"root","type":[{"name":"Sampler","namespace":"Flow\\Telemetry\\Tracer\\Sampler","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Telemetry\\Tracer\\Sampler\\AlwaysOnSampler::..."}],"return_type":[{"name":"ParentBasedSampler","namespace":"Flow\\Telemetry\\Tracer\\Sampler","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFBhcmVudEJhc2VkU2FtcGxlci4gSG9ub3JzIHRoZSBwYXJlbnQgc3BhbidzIHNhbXBsaW5nIGRlY2lzaW9uLCBmYWxsaW5nCiAqIGJhY2sgdG8gdGhlIHJvb3Qgc2FtcGxlciBmb3Igc3BhbnMgd2l0aG91dCBhIHBhcmVudC4KICoKICogQHBhcmFtIFNhbXBsZXIgJHJvb3QgU2FtcGxlciB1c2VkIGZvciByb290IHNwYW5zIChubyBwYXJlbnQpCiAqLw=="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":906,"slug":"attribute-matching-sampler","name":"attribute_matching_sampler","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"filter","type":[{"name":"AttributeFilter","namespace":"Flow\\Telemetry\\Filter","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"delegate","type":[{"name":"Sampler","namespace":"Flow\\Telemetry\\Tracer\\Sampler","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Telemetry\\Tracer\\Sampler\\AlwaysOnSampler::..."}],"return_type":[{"name":"AttributeMatchingSampler","namespace":"Flow\\Telemetry\\Tracer\\Sampler","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBBdHRyaWJ1dGVNYXRjaGluZ1NhbXBsZXIuIERyb3BzIHNwYW5zIHdob3NlIHN0YXJ0LXRpbWUgYXR0cmlidXRlcyBtYXRjaAogKiB0aGUgZmlsdGVyIChvciBrZWVwcyBPTkxZIG1hdGNoaW5nIHNwYW5zIHdoZW4gdGhlIGZpbHRlcidzIGV4Y2x1ZGUgaXMgZmFsc2UpLCBhbmQKICogZGVmZXJzIGFsbCBvdGhlciBzcGFucyB0byB0aGUgZGVsZWdhdGUgc2FtcGxlci4KICoKICogT25seSBhdHRyaWJ1dGVzIGF2YWlsYWJsZSBhdCBzcGFuIHN0YXJ0IGFyZSB2aXNpYmxlOyBhdHRyaWJ1dGVzIGFkZGVkIGxhdGVyIGFyZSBub3QuCiAqCiAqIEBwYXJhbSBBdHRyaWJ1dGVGaWx0ZXIgJGZpbHRlciBUaGUgYXR0cmlidXRlIGZpbHRlciBldmFsdWF0ZWQgYWdhaW5zdCB0aGUgc3BhbidzIHN0YXJ0IGF0dHJpYnV0ZXMKICogQHBhcmFtIFNhbXBsZXIgJGRlbGVnYXRlIFNhbXBsZXIgdGhhdCBkZWNpZGVzIHNwYW5zIHdoaWNoIGRvIG5vdCBtYXRjaCAoZGVmYXVsdDogQWx3YXlzT25TYW1wbGVyKQogKi8="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":920,"slug":"propagation-context","name":"propagation_context","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"spanContext","type":[{"name":"SpanContext","namespace":"Flow\\Telemetry\\Tracer","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"baggage","type":[{"name":"Baggage","namespace":"Flow\\Telemetry\\Context","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"PropagationContext","namespace":"Flow\\Telemetry\\Propagation","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"TYPE"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFByb3BhZ2F0aW9uQ29udGV4dC4KICoKICogQHBhcmFtIG51bGx8U3BhbkNvbnRleHQgJHNwYW5Db250ZXh0IE9wdGlvbmFsIHNwYW4gY29udGV4dAogKiBAcGFyYW0gbnVsbHxCYWdnYWdlICRiYWdnYWdlIE9wdGlvbmFsIGJhZ2dhZ2UKICov"},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":931,"slug":"array-carrier","name":"array_carrier","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"data","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"}],"return_type":[{"name":"ArrayCarrier","namespace":"Flow\\Telemetry\\Propagation","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBBcnJheUNhcnJpZXIuCiAqCiAqIEBwYXJhbSBhcnJheTxzdHJpbmcsIHN0cmluZz4gJGRhdGEgSW5pdGlhbCBjYXJyaWVyIGRhdGEKICov"},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":940,"slug":"superglobal-carrier","name":"superglobal_carrier","namespace":"Flow\\Telemetry\\DSL","parameters":[],"return_type":[{"name":"SuperglobalCarrier","namespace":"Flow\\Telemetry\\Propagation","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFN1cGVyZ2xvYmFsQ2Fycmllci4KICov"},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":949,"slug":"w3c-trace-context","name":"w3c_trace_context","namespace":"Flow\\Telemetry\\DSL","parameters":[],"return_type":[{"name":"W3CTraceContext","namespace":"Flow\\Telemetry\\Propagation","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFczQ1RyYWNlQ29udGV4dCBwcm9wYWdhdG9yLgogKi8="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":958,"slug":"w3c-baggage","name":"w3c_baggage","namespace":"Flow\\Telemetry\\DSL","parameters":[],"return_type":[{"name":"W3CBaggage","namespace":"Flow\\Telemetry\\Propagation","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFczQ0JhZ2dhZ2UgcHJvcGFnYXRvci4KICov"},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":969,"slug":"composite-propagator","name":"composite_propagator","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"propagators","type":[{"name":"Propagator","namespace":"Flow\\Telemetry\\Propagation","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"CompositePropagator","namespace":"Flow\\Telemetry\\Propagation","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIENvbXBvc2l0ZVByb3BhZ2F0b3IuCiAqCiAqIEBwYXJhbSBQcm9wYWdhdG9yIC4uLiRwcm9wYWdhdG9ycyBUaGUgcHJvcGFnYXRvcnMgdG8gY29tYmluZQogKi8="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":980,"slug":"chain-detector","name":"chain_detector","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"detectors","type":[{"name":"ResourceDetector","namespace":"Flow\\Telemetry\\Resource","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"ChainDetector","namespace":"Flow\\Telemetry\\Resource\\Detector","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIENoYWluRGV0ZWN0b3IuCiAqCiAqIEBwYXJhbSBSZXNvdXJjZURldGVjdG9yIC4uLiRkZXRlY3RvcnMgVGhlIGRldGVjdG9ycyB0byBjaGFpbgogKi8="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":989,"slug":"os-detector","name":"os_detector","namespace":"Flow\\Telemetry\\DSL","parameters":[],"return_type":[{"name":"OsDetector","namespace":"Flow\\Telemetry\\Resource\\Detector","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBPc0RldGVjdG9yLgogKi8="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":998,"slug":"host-detector","name":"host_detector","namespace":"Flow\\Telemetry\\DSL","parameters":[],"return_type":[{"name":"HostDetector","namespace":"Flow\\Telemetry\\Resource\\Detector","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIEhvc3REZXRlY3Rvci4KICov"},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":1007,"slug":"process-detector","name":"process_detector","namespace":"Flow\\Telemetry\\DSL","parameters":[],"return_type":[{"name":"ProcessDetector","namespace":"Flow\\Telemetry\\Resource\\Detector","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFByb2Nlc3NEZXRlY3Rvci4KICov"},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":1016,"slug":"environment-detector","name":"environment_detector","namespace":"Flow\\Telemetry\\DSL","parameters":[],"return_type":[{"name":"EnvironmentDetector","namespace":"Flow\\Telemetry\\Resource\\Detector","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBFbnZpcm9ubWVudERldGVjdG9yLgogKi8="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":1025,"slug":"composer-detector","name":"composer_detector","namespace":"Flow\\Telemetry\\DSL","parameters":[],"return_type":[{"name":"ComposerDetector","namespace":"Flow\\Telemetry\\Resource\\Detector","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIENvbXBvc2VyRGV0ZWN0b3IuCiAqLw=="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":1037,"slug":"git-detector","name":"git_detector","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"workingDirectory","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"gitBinary","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'git'"}],"return_type":[{"name":"GitDetector","namespace":"Flow\\Telemetry\\Resource\\Detector","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIEdpdERldGVjdG9yLgogKgogKiBAcGFyYW0gbnVsbHxzdHJpbmcgJHdvcmtpbmdEaXJlY3RvcnkgRGlyZWN0b3J5IHRvIHJ1biBnaXQgaW4gKGRlZmF1bHQ6IGN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnkpCiAqIEBwYXJhbSBzdHJpbmcgJGdpdEJpbmFyeSBQYXRoIHRvIHRoZSBnaXQgYmluYXJ5IChkZWZhdWx0OiAiZ2l0IiwgcmVzb2x2ZWQgZnJvbSAkUEFUSCkKICov"},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":1048,"slug":"manual-detector","name":"manual_detector","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"attributes","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ManualDetector","namespace":"Flow\\Telemetry\\Resource\\Detector","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIE1hbnVhbERldGVjdG9yLgogKgogKiBAcGFyYW0gYXJyYXk8c3RyaW5nLCBhcnJheTxhcnJheS1rZXksIG1peGVkPnxib29sfFxEYXRlVGltZUludGVyZmFjZXxmbG9hdHxpbnR8c3RyaW5nfFxUaHJvd2FibGU+ICRhdHRyaWJ1dGVzIFJlc291cmNlIGF0dHJpYnV0ZXMKICov"},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":1060,"slug":"caching-detector","name":"caching_detector","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"detector","type":[{"name":"ResourceDetector","namespace":"Flow\\Telemetry\\Resource","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"cachePath","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"CachingDetector","namespace":"Flow\\Telemetry\\Resource\\Detector","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIENhY2hpbmdEZXRlY3Rvci4KICoKICogQHBhcmFtIFJlc291cmNlRGV0ZWN0b3IgJGRldGVjdG9yIFRoZSBkZXRlY3RvciB0byB3cmFwCiAqIEBwYXJhbSBudWxsfHN0cmluZyAkY2FjaGVQYXRoIENhY2hlIGZpbGUgcGF0aCAoZGVmYXVsdDogc3lzX2dldF90ZW1wX2RpcigpL2Zsb3dfdGVsZW1ldHJ5X3Jlc291cmNlLmNhY2hlKQogKi8="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":1071,"slug":"resource-detector","name":"resource_detector","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"detectors","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"}],"return_type":[{"name":"ChainDetector","namespace":"Flow\\Telemetry\\Resource\\Detector","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIHJlc291cmNlIGRldGVjdG9yIGNoYWluLgogKgogKiBAcGFyYW0gYXJyYXk8UmVzb3VyY2VEZXRlY3Rvcj4gJGRldGVjdG9ycyBPcHRpb25hbCBjdXN0b20gZGV0ZWN0b3JzIChlbXB0eSA9IHVzZSBkZWZhdWx0cykKICov"},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":1090,"slug":"error-log-handler","name":"error_log_handler","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"messageType","type":[{"name":"ErrorLogMessageType","namespace":"Flow\\Telemetry\\ErrorHandler","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Telemetry\\ErrorHandler\\ErrorLogMessageType::..."},{"name":"expandNewlines","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"messagePrefix","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'[flow-telemetry]'"}],"return_type":[{"name":"ErrorLogHandler","namespace":"Flow\\Telemetry\\ErrorHandler","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSB0aGUgZGVmYXVsdCBFcnJvckxvZ0hhbmRsZXIuIFdyaXRlcyB2aWEgUEhQJ3MgZXJyb3JfbG9nKCkuCiAqLw=="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":1103,"slug":"stream-error-handler","name":"stream_error_handler","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"destination","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"filePermissions","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"420"},{"name":"createDirectories","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"messagePrefix","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'[flow-telemetry]'"}],"return_type":[{"name":"StreamHandler","namespace":"Flow\\Telemetry\\ErrorHandler","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFN0cmVhbUhhbmRsZXIuIEFwcGVuZHMgZm9ybWF0dGVkIFRocm93YWJsZXMgKG9uZSBwZXIgbGluZSkgdG8gYSBmaWxlCiAqIHBhdGggb3IgcGhwOi8vIHN0cmVhbSB3cmFwcGVyLgogKi8="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":1116,"slug":"syslog-error-handler","name":"syslog_error_handler","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"ident","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'flow-telemetry'"},{"name":"facility","type":[{"name":"SyslogFacility","namespace":"Flow\\Telemetry\\ErrorHandler","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Telemetry\\ErrorHandler\\SyslogFacility::..."},{"name":"logOpts","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"1"},{"name":"severity","type":[{"name":"SyslogSeverity","namespace":"Flow\\Telemetry\\ErrorHandler","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Telemetry\\ErrorHandler\\SyslogSeverity::..."}],"return_type":[{"name":"SyslogHandler","namespace":"Flow\\Telemetry\\ErrorHandler","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFN5c2xvZ0hhbmRsZXIuIFdyaXRlcyB2aWEgb3BlbmxvZy9zeXNsb2cvY2xvc2Vsb2cuCiAqLw=="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":1129,"slug":"udp-syslog-error-handler","name":"udp_syslog_error_handler","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"host","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"port","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"514"},{"name":"ident","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'flow-telemetry'"},{"name":"facility","type":[{"name":"SyslogFacility","namespace":"Flow\\Telemetry\\ErrorHandler","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Telemetry\\ErrorHandler\\SyslogFacility::..."},{"name":"severity","type":[{"name":"SyslogSeverity","namespace":"Flow\\Telemetry\\ErrorHandler","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Telemetry\\ErrorHandler\\SyslogSeverity::..."}],"return_type":[{"name":"UdpSyslogHandler","namespace":"Flow\\Telemetry\\ErrorHandler","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFVkcFN5c2xvZ0hhbmRsZXIuIFNlbmRzIFJGQyA1NDI0LXN0eWxlIHN5c2xvZyBmcmFtZXMgb3ZlciBVRFAuCiAqLw=="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":1143,"slug":"composite-error-handler","name":"composite_error_handler","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"handlers","type":[{"name":"ErrorHandler","namespace":"Flow\\Telemetry\\ErrorHandler","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"CompositeErrorHandler","namespace":"Flow\\Telemetry\\ErrorHandler","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEZhbiBlcnJvcnMgb3V0IHRvIG11bHRpcGxlIGhhbmRsZXJzLgogKi8="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":1152,"slug":"null-error-handler","name":"null_error_handler","namespace":"Flow\\Telemetry\\DSL","parameters":[],"return_type":[{"name":"NullErrorHandler","namespace":"Flow\\Telemetry\\ErrorHandler","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIERpc2NhcmQgZXZlcnkgZXJyb3IuIFVzZSBvbmx5IGluIHRlc3RzIG9yIGZvciBleHBsaWNpdCBzaWxlbmNlLgogKi8="},{"repository_path":"src\/lib\/telemetry\/src\/Flow\/Telemetry\/DSL\/functions.php","start_line_in_file":1163,"slug":"url-sanitizer","name":"url_sanitizer","namespace":"Flow\\Telemetry\\DSL","parameters":[{"name":"sensitiveQueryParameters","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[...]"}],"return_type":[{"name":"UrlSanitizer","namespace":"Flow\\Telemetry\\Sanitizer","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFVybFNhbml0aXplci4gVGhlIGdpdmVuIGxpc3QgcmVwbGFjZXMgdGhlIE9wZW5UZWxlbWV0cnkgc2VtYW50aWMtY29udmVudGlvbiBkZWZhdWx0IGxpc3QuCiAqCiAqIEBwYXJhbSBsaXN0PHN0cmluZz4gJHNlbnNpdGl2ZVF1ZXJ5UGFyYW1ldGVycyBDYXNlLXNlbnNpdGl2ZSBxdWVyeSBwYXJhbWV0ZXIga2V5cyB3aG9zZSB2YWx1ZXMgYXJlIHJlcGxhY2VkIHdpdGggUkVEQUNURUQKICov"},{"repository_path":"src\/lib\/azure-sdk\/src\/Flow\/Azure\/SDK\/DSL\/functions.php","start_line_in_file":29,"slug":"azurite-url-factory","name":"azurite_url_factory","namespace":"Flow\\Azure\\SDK\\DSL","parameters":[{"name":"host","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'localhost'"},{"name":"port","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'10000'"},{"name":"secure","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"AzuriteURLFactory","namespace":"Flow\\Azure\\SDK\\BlobService\\URLFactory","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"AZURE_SDK","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/azure-sdk\/src\/Flow\/Azure\/SDK\/DSL\/functions.php","start_line_in_file":38,"slug":"azure-shared-key-authorization-factory","name":"azure_shared_key_authorization_factory","namespace":"Flow\\Azure\\SDK\\DSL","parameters":[{"name":"account","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"key","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"SharedKeyFactory","namespace":"Flow\\Azure\\SDK\\AuthorizationFactory","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"AZURE_SDK","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/azure-sdk\/src\/Flow\/Azure\/SDK\/DSL\/functions.php","start_line_in_file":48,"slug":"azure-blob-service-config","name":"azure_blob_service_config","namespace":"Flow\\Azure\\SDK\\DSL","parameters":[{"name":"account","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"container","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Configuration","namespace":"Flow\\Azure\\SDK\\BlobService","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"AZURE_SDK","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/azure-sdk\/src\/Flow\/Azure\/SDK\/DSL\/functions.php","start_line_in_file":54,"slug":"azure-url-factory","name":"azure_url_factory","namespace":"Flow\\Azure\\SDK\\DSL","parameters":[{"name":"host","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'blob.core.windows.net'"}],"return_type":[{"name":"AzureURLFactory","namespace":"Flow\\Azure\\SDK\\BlobService\\URLFactory","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"AZURE_SDK","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/azure-sdk\/src\/Flow\/Azure\/SDK\/DSL\/functions.php","start_line_in_file":60,"slug":"azure-http-factory","name":"azure_http_factory","namespace":"Flow\\Azure\\SDK\\DSL","parameters":[{"name":"request_factory","type":[{"name":"RequestFactoryInterface","namespace":"Psr\\Http\\Message","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"stream_factory","type":[{"name":"StreamFactoryInterface","namespace":"Psr\\Http\\Message","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"HttpFactory","namespace":"Flow\\Azure\\SDK","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"AZURE_SDK","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/lib\/azure-sdk\/src\/Flow\/Azure\/SDK\/DSL\/functions.php","start_line_in_file":68,"slug":"azure-blob-service","name":"azure_blob_service","namespace":"Flow\\Azure\\SDK\\DSL","parameters":[{"name":"configuration","type":[{"name":"Configuration","namespace":"Flow\\Azure\\SDK\\BlobService","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"azure_authorization_factory","type":[{"name":"AuthorizationFactory","namespace":"Flow\\Azure\\SDK","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"client","type":[{"name":"ClientInterface","namespace":"Psr\\Http\\Client","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"azure_http_factory","type":[{"name":"HttpFactory","namespace":"Flow\\Azure\\SDK","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"azure_url_factory","type":[{"name":"URLFactory","namespace":"Flow\\Azure\\SDK","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"logger","type":[{"name":"LoggerInterface","namespace":"Psr\\Log","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"BlobServiceInterface","namespace":"Flow\\Azure\\SDK","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"AZURE_SDK","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/bridge\/filesystem\/azure\/src\/Flow\/Filesystem\/Bridge\/Azure\/DSL\/functions.php","start_line_in_file":16,"slug":"azure-filesystem-options","name":"azure_filesystem_options","namespace":"Flow\\Filesystem\\Bridge\\Azure\\DSL","parameters":[],"return_type":[{"name":"Options","namespace":"Flow\\Filesystem\\Bridge\\Azure","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"AZURE_FILESYSTEM","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/bridge\/filesystem\/azure\/src\/Flow\/Filesystem\/Bridge\/Azure\/DSL\/functions.php","start_line_in_file":22,"slug":"azure-filesystem","name":"azure_filesystem","namespace":"Flow\\Filesystem\\Bridge\\Azure\\DSL","parameters":[{"name":"blob_service","type":[{"name":"BlobServiceInterface","namespace":"Flow\\Azure\\SDK","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"options","type":[{"name":"Options","namespace":"Flow\\Filesystem\\Bridge\\Azure","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Filesystem\\Bridge\\Azure\\Options::..."},{"name":"protocol","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'azure-blob'"}],"return_type":[{"name":"AzureBlobFilesystem","namespace":"Flow\\Filesystem\\Bridge\\Azure","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"AZURE_FILESYSTEM","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/bridge\/filesystem\/async-aws\/src\/Flow\/Filesystem\/Bridge\/AsyncAWS\/DSL\/functions.php","start_line_in_file":20,"slug":"aws-s3-client","name":"aws_s3_client","namespace":"Flow\\Filesystem\\Bridge\\AsyncAWS\\DSL","parameters":[{"name":"configuration","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"S3Client","namespace":"AsyncAws\\S3","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"S3_FILESYSTEM","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEBwYXJhbSBhcnJheTxDb25maWd1cmF0aW9uOjpPUFRJT05fKiwgbnVsbHxzdHJpbmc+ICRjb25maWd1cmF0aW9uIC0gZm9yIGRldGFpbHMgcGxlYXNlIHNlZSBodHRwczovL2FzeW5jLWF3cy5jb20vY2xpZW50cy9zMy5odG1sCiAqLw=="},{"repository_path":"src\/bridge\/filesystem\/async-aws\/src\/Flow\/Filesystem\/Bridge\/AsyncAWS\/DSL\/functions.php","start_line_in_file":26,"slug":"aws-s3-filesystem","name":"aws_s3_filesystem","namespace":"Flow\\Filesystem\\Bridge\\AsyncAWS\\DSL","parameters":[{"name":"bucket","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"s3Client","type":[{"name":"S3Client","namespace":"AsyncAws\\S3","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"options","type":[{"name":"Options","namespace":"Flow\\Filesystem\\Bridge\\AsyncAWS","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Filesystem\\Bridge\\AsyncAWS\\Options::..."},{"name":"protocol","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'aws-s3'"}],"return_type":[{"name":"AsyncAWSS3Filesystem","namespace":"Flow\\Filesystem\\Bridge\\AsyncAWS","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"S3_FILESYSTEM","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/bridge\/filesystem\/sftp\/src\/Flow\/Filesystem\/Bridge\/SFTP\/DSL\/functions.php","start_line_in_file":24,"slug":"sftp-client","name":"sftp_client","namespace":"Flow\\Filesystem\\Bridge\\SFTP\\DSL","parameters":[{"name":"host","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"user","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"credential","type":[{"name":"PrivateKey","namespace":"phpseclib4\\Crypt\\Common","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"port","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"22"}],"return_type":[{"name":"SFTP","namespace":"phpseclib4\\Net","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"SFTP_FILESYSTEM","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIEB0aHJvd3MgUnVudGltZUV4Y2VwdGlvbgogKi8="},{"repository_path":"src\/bridge\/filesystem\/sftp\/src\/Flow\/Filesystem\/Bridge\/SFTP\/DSL\/functions.php","start_line_in_file":46,"slug":"sftp-filesystem","name":"sftp_filesystem","namespace":"Flow\\Filesystem\\Bridge\\SFTP\\DSL","parameters":[{"name":"sftp","type":[{"name":"SFTP","namespace":"phpseclib4\\Net","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"options","type":[{"name":"Options","namespace":"Flow\\Filesystem\\Bridge\\SFTP","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Filesystem\\Bridge\\SFTP\\Options::..."},{"name":"protocol","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'sftp'"}],"return_type":[{"name":"SFTPFilesystem","namespace":"Flow\\Filesystem\\Bridge\\SFTP","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"SFTP_FILESYSTEM","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/bridge\/filesystem\/sftp\/src\/Flow\/Filesystem\/Bridge\/SFTP\/DSL\/functions.php","start_line_in_file":52,"slug":"sftp-filesystem-options","name":"sftp_filesystem_options","namespace":"Flow\\Filesystem\\Bridge\\SFTP\\DSL","parameters":[],"return_type":[{"name":"Options","namespace":"Flow\\Filesystem\\Bridge\\SFTP","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"SFTP_FILESYSTEM","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/bridge\/monolog\/telemetry\/src\/Flow\/Bridge\/Monolog\/Telemetry\/DSL\/functions.php","start_line_in_file":40,"slug":"value-normalizer","name":"value_normalizer","namespace":"Flow\\Bridge\\Monolog\\Telemetry\\DSL","parameters":[],"return_type":[{"name":"ValueNormalizer","namespace":"Flow\\Bridge\\Monolog\\Telemetry","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"MONOLOG_TELEMETRY_BRIDGE","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFZhbHVlTm9ybWFsaXplciBmb3IgY29udmVydGluZyBhcmJpdHJhcnkgUEhQIHZhbHVlcyB0byBUZWxlbWV0cnkgYXR0cmlidXRlIHR5cGVzLgogKgogKiBUaGUgbm9ybWFsaXplciBoYW5kbGVzOgogKiAtIG51bGwg4oaSICdudWxsJyBzdHJpbmcKICogLSBzY2FsYXJzIChzdHJpbmcsIGludCwgZmxvYXQsIGJvb2wpIOKGkiB1bmNoYW5nZWQKICogLSBEYXRlVGltZUludGVyZmFjZSDihpIgdW5jaGFuZ2VkCiAqIC0gVGhyb3dhYmxlIOKGkiB1bmNoYW5nZWQKICogLSBhcnJheXMg4oaSIHJlY3Vyc2l2ZWx5IG5vcm1hbGl6ZWQKICogLSBvYmplY3RzIHdpdGggX190b1N0cmluZygpIOKGkiBzdHJpbmcgY2FzdAogKiAtIG9iamVjdHMgd2l0aG91dCBfX3RvU3RyaW5nKCkg4oaSIGNsYXNzIG5hbWUKICogLSBvdGhlciB0eXBlcyDihpIgZ2V0X2RlYnVnX3R5cGUoKSByZXN1bHQKICoKICogRXhhbXBsZSB1c2FnZToKICogYGBgcGhwCiAqICRub3JtYWxpemVyID0gdmFsdWVfbm9ybWFsaXplcigpOwogKiAkbm9ybWFsaXplZCA9ICRub3JtYWxpemVyLT5ub3JtYWxpemUoJHZhbHVlKTsKICogYGBgCiAqLw=="},{"repository_path":"src\/bridge\/monolog\/telemetry\/src\/Flow\/Bridge\/Monolog\/Telemetry\/DSL\/functions.php","start_line_in_file":73,"slug":"severity-mapper","name":"severity_mapper","namespace":"Flow\\Bridge\\Monolog\\Telemetry\\DSL","parameters":[{"name":"customMapping","type":[{"name":"array","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"SeverityMapper","namespace":"Flow\\Bridge\\Monolog\\Telemetry","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"MONOLOG_TELEMETRY_BRIDGE","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFNldmVyaXR5TWFwcGVyIGZvciBtYXBwaW5nIE1vbm9sb2cgbGV2ZWxzIHRvIFRlbGVtZXRyeSBzZXZlcml0aWVzLgogKgogKiBAcGFyYW0gbnVsbHxhcnJheTxpbnQsIFNldmVyaXR5PiAkY3VzdG9tTWFwcGluZyBPcHRpb25hbCBjdXN0b20gbWFwcGluZyAoTW9ub2xvZyBMZXZlbCB2YWx1ZSA9PiBUZWxlbWV0cnkgU2V2ZXJpdHkpCiAqCiAqIEV4YW1wbGUgd2l0aCBkZWZhdWx0IG1hcHBpbmc6CiAqIGBgYHBocAogKiAkbWFwcGVyID0gc2V2ZXJpdHlfbWFwcGVyKCk7CiAqIGBgYAogKgogKiBFeGFtcGxlIHdpdGggY3VzdG9tIG1hcHBpbmc6CiAqIGBgYHBocAogKiB1c2UgTW9ub2xvZ1xMZXZlbDsKICogdXNlIEZsb3dcVGVsZW1ldHJ5XExvZ2dlclxTZXZlcml0eTsKICoKICogJG1hcHBlciA9IHNldmVyaXR5X21hcHBlcihbCiAqICAgICBMZXZlbDo6RGVidWctPnZhbHVlID0+IFNldmVyaXR5OjpERUJVRywKICogICAgIExldmVsOjpJbmZvLT52YWx1ZSA9PiBTZXZlcml0eTo6SU5GTywKICogICAgIExldmVsOjpOb3RpY2UtPnZhbHVlID0+IFNldmVyaXR5OjpXQVJOLCAgLy8gQ3VzdG9tOiBOT1RJQ0Ug4oaSIFdBUk4gaW5zdGVhZCBvZiBJTkZPCiAqICAgICBMZXZlbDo6V2FybmluZy0+dmFsdWUgPT4gU2V2ZXJpdHk6OldBUk4sCiAqICAgICBMZXZlbDo6RXJyb3ItPnZhbHVlID0+IFNldmVyaXR5OjpFUlJPUiwKICogICAgIExldmVsOjpDcml0aWNhbC0+dmFsdWUgPT4gU2V2ZXJpdHk6OkZBVEFMLAogKiAgICAgTGV2ZWw6OkFsZXJ0LT52YWx1ZSA9PiBTZXZlcml0eTo6RkFUQUwsCiAqICAgICBMZXZlbDo6RW1lcmdlbmN5LT52YWx1ZSA9PiBTZXZlcml0eTo6RkFUQUwsCiAqIF0pOwogKiBgYGAKICov"},{"repository_path":"src\/bridge\/monolog\/telemetry\/src\/Flow\/Bridge\/Monolog\/Telemetry\/DSL\/functions.php","start_line_in_file":107,"slug":"log-record-converter","name":"log_record_converter","namespace":"Flow\\Bridge\\Monolog\\Telemetry\\DSL","parameters":[{"name":"severityMapper","type":[{"name":"SeverityMapper","namespace":"Flow\\Bridge\\Monolog\\Telemetry","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"valueNormalizer","type":[{"name":"ValueNormalizer","namespace":"Flow\\Bridge\\Monolog\\Telemetry","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"LogRecordConverter","namespace":"Flow\\Bridge\\Monolog\\Telemetry","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"MONOLOG_TELEMETRY_BRIDGE","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIExvZ1JlY29yZENvbnZlcnRlciBmb3IgY29udmVydGluZyBNb25vbG9nIExvZ1JlY29yZCB0byBUZWxlbWV0cnkgTG9nUmVjb3JkLgogKgogKiBUaGUgY29udmVydGVyIGhhbmRsZXM6CiAqIC0gU2V2ZXJpdHkgbWFwcGluZyBmcm9tIE1vbm9sb2cgTGV2ZWwgdG8gVGVsZW1ldHJ5IFNldmVyaXR5CiAqIC0gTWVzc2FnZSBib2R5IGNvbnZlcnNpb24KICogLSBDaGFubmVsIGFuZCBsZXZlbCBuYW1lIGFzIG1vbm9sb2cuKiBhdHRyaWJ1dGVzCiAqIC0gQ29udGV4dCB2YWx1ZXMgYXMgY29udGV4dC4qIGF0dHJpYnV0ZXMgKFRocm93YWJsZXMgdXNlIHNldEV4Y2VwdGlvbigpKQogKiAtIEV4dHJhIHZhbHVlcyBhcyBleHRyYS4qIGF0dHJpYnV0ZXMKICoKICogQHBhcmFtIG51bGx8U2V2ZXJpdHlNYXBwZXIgJHNldmVyaXR5TWFwcGVyIEN1c3RvbSBzZXZlcml0eSBtYXBwZXIgKGRlZmF1bHRzIHRvIHN0YW5kYXJkIG1hcHBpbmcpCiAqIEBwYXJhbSBudWxsfFZhbHVlTm9ybWFsaXplciAkdmFsdWVOb3JtYWxpemVyIEN1c3RvbSB2YWx1ZSBub3JtYWxpemVyIChkZWZhdWx0cyB0byBzdGFuZGFyZCBub3JtYWxpemVyKQogKgogKiBFeGFtcGxlIHVzYWdlOgogKiBgYGBwaHAKICogJGNvbnZlcnRlciA9IGxvZ19yZWNvcmRfY29udmVydGVyKCk7CiAqICR0ZWxlbWV0cnlSZWNvcmQgPSAkY29udmVydGVyLT5jb252ZXJ0KCRtb25vbG9nUmVjb3JkKTsKICogYGBgCiAqCiAqIEV4YW1wbGUgd2l0aCBjdXN0b20gbWFwcGVyOgogKiBgYGBwaHAKICogJGNvbnZlcnRlciA9IGxvZ19yZWNvcmRfY29udmVydGVyKAogKiAgICAgc2V2ZXJpdHlNYXBwZXI6IHNldmVyaXR5X21hcHBlcihbCiAqICAgICAgICAgTGV2ZWw6OkRlYnVnLT52YWx1ZSA9PiBTZXZlcml0eTo6VFJBQ0UsCiAqICAgICBdKQogKiApOwogKiBgYGAKICov"},{"repository_path":"src\/bridge\/monolog\/telemetry\/src\/Flow\/Bridge\/Monolog\/Telemetry\/DSL\/functions.php","start_line_in_file":149,"slug":"telemetry-handler","name":"telemetry_handler","namespace":"Flow\\Bridge\\Monolog\\Telemetry\\DSL","parameters":[{"name":"logger","type":[{"name":"Logger","namespace":"Flow\\Telemetry\\Logger","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"converter","type":[{"name":"LogRecordConverter","namespace":"Flow\\Bridge\\Monolog\\Telemetry","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Bridge\\Monolog\\Telemetry\\LogRecordConverter::..."},{"name":"level","type":[{"name":"Level","namespace":"Monolog","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Monolog\\Level::..."},{"name":"bubble","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"errorHandler","type":[{"name":"ErrorHandler","namespace":"Flow\\Telemetry\\ErrorHandler","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Telemetry\\ErrorHandler\\ErrorLogHandler::..."}],"return_type":[{"name":"TelemetryHandler","namespace":"Flow\\Bridge\\Monolog\\Telemetry","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"MONOLOG_TELEMETRY_BRIDGE","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFRlbGVtZXRyeUhhbmRsZXIgZm9yIGZvcndhcmRpbmcgTW9ub2xvZyBsb2dzIHRvIEZsb3cgVGVsZW1ldHJ5LgogKgogKiBAcGFyYW0gTG9nZ2VyICRsb2dnZXIgVGhlIEZsb3cgVGVsZW1ldHJ5IGxvZ2dlciB0byBmb3J3YXJkIGxvZ3MgdG8KICogQHBhcmFtIExvZ1JlY29yZENvbnZlcnRlciAkY29udmVydGVyIENvbnZlcnRlciB0byB0cmFuc2Zvcm0gTW9ub2xvZyBMb2dSZWNvcmQgdG8gVGVsZW1ldHJ5IExvZ1JlY29yZAogKiBAcGFyYW0gTGV2ZWwgJGxldmVsIFRoZSBtaW5pbXVtIGxvZ2dpbmcgbGV2ZWwgYXQgd2hpY2ggdGhpcyBoYW5kbGVyIHdpbGwgYmUgdHJpZ2dlcmVkCiAqIEBwYXJhbSBib29sICRidWJibGUgV2hldGhlciBtZXNzYWdlcyBoYW5kbGVkIGJ5IHRoaXMgaGFuZGxlciBzaG91bGQgYnViYmxlIHVwIHRvIG90aGVyIGhhbmRsZXJzCiAqCiAqIEV4YW1wbGUgdXNhZ2U6CiAqIGBgYHBocAogKiB1c2UgTW9ub2xvZ1xMb2dnZXIgYXMgTW9ub2xvZ0xvZ2dlcjsKICogdXNlIGZ1bmN0aW9uIEZsb3dcQnJpZGdlXE1vbm9sb2dcVGVsZW1ldHJ5XERTTFx0ZWxlbWV0cnlfaGFuZGxlcjsKICogdXNlIGZ1bmN0aW9uIEZsb3dcVGVsZW1ldHJ5XERTTFx0ZWxlbWV0cnk7CiAqCiAqICR0ZWxlbWV0cnkgPSB0ZWxlbWV0cnkoKTsKICogJGxvZ2dlciA9ICR0ZWxlbWV0cnktPmxvZ2dlcignbXktYXBwJyk7CiAqCiAqICRtb25vbG9nID0gbmV3IE1vbm9sb2dMb2dnZXIoJ2NoYW5uZWwnKTsKICogJG1vbm9sb2ctPnB1c2hIYW5kbGVyKHRlbGVtZXRyeV9oYW5kbGVyKCRsb2dnZXIpKTsKICoKICogJG1vbm9sb2ctPmluZm8oJ1VzZXIgbG9nZ2VkIGluJywgWyd1c2VyX2lkJyA9PiAxMjNdKTsKICogLy8g4oaSIEZvcndhcmRlZCB0byBGbG93IFRlbGVtZXRyeSB3aXRoIElORk8gc2V2ZXJpdHkKICogYGBgCiAqCiAqIEV4YW1wbGUgd2l0aCBjdXN0b20gY29udmVydGVyOgogKiBgYGBwaHAKICogJGNvbnZlcnRlciA9IGxvZ19yZWNvcmRfY29udmVydGVyKAogKiAgICAgc2V2ZXJpdHlNYXBwZXI6IHNldmVyaXR5X21hcHBlcihbCiAqICAgICAgICAgTGV2ZWw6OkRlYnVnLT52YWx1ZSA9PiBTZXZlcml0eTo6VFJBQ0UsCiAqICAgICBdKQogKiApOwogKiAkbW9ub2xvZy0+cHVzaEhhbmRsZXIodGVsZW1ldHJ5X2hhbmRsZXIoJGxvZ2dlciwgJGNvbnZlcnRlcikpOwogKiBgYGAKICov"},{"repository_path":"src\/bridge\/symfony\/http-foundation-telemetry\/src\/Flow\/Bridge\/Symfony\/HttpFoundationTelemetry\/DSL\/functions.php","start_line_in_file":16,"slug":"symfony-request-carrier","name":"symfony_request_carrier","namespace":"Flow\\Bridge\\Symfony\\HttpFoundationTelemetry\\DSL","parameters":[{"name":"request","type":[{"name":"Request","namespace":"Symfony\\Component\\HttpFoundation","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"RequestCarrier","namespace":"Flow\\Bridge\\Symfony\\HttpFoundationTelemetry","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"SYMFONY_HTTP_FOUNDATION_TELEMETRY_BRIDGE","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/bridge\/symfony\/http-foundation-telemetry\/src\/Flow\/Bridge\/Symfony\/HttpFoundationTelemetry\/DSL\/functions.php","start_line_in_file":22,"slug":"symfony-response-carrier","name":"symfony_response_carrier","namespace":"Flow\\Bridge\\Symfony\\HttpFoundationTelemetry\\DSL","parameters":[{"name":"response","type":[{"name":"Response","namespace":"Symfony\\Component\\HttpFoundation","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ResponseCarrier","namespace":"Flow\\Bridge\\Symfony\\HttpFoundationTelemetry","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"SYMFONY_HTTP_FOUNDATION_TELEMETRY_BRIDGE","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/bridge\/psr7\/telemetry\/src\/Flow\/Bridge\/Psr7\/Telemetry\/DSL\/functions.php","start_line_in_file":16,"slug":"psr7-request-carrier","name":"psr7_request_carrier","namespace":"Flow\\Bridge\\Psr7\\Telemetry\\DSL","parameters":[{"name":"request","type":[{"name":"ServerRequestInterface","namespace":"Psr\\Http\\Message","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"RequestCarrier","namespace":"Flow\\Bridge\\Psr7\\Telemetry","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PSR7_TELEMETRY_BRIDGE","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/bridge\/psr7\/telemetry\/src\/Flow\/Bridge\/Psr7\/Telemetry\/DSL\/functions.php","start_line_in_file":22,"slug":"psr7-response-carrier","name":"psr7_response_carrier","namespace":"Flow\\Bridge\\Psr7\\Telemetry\\DSL","parameters":[{"name":"response","type":[{"name":"ResponseInterface","namespace":"Psr\\Http\\Message","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ResponseCarrier","namespace":"Flow\\Bridge\\Psr7\\Telemetry","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PSR7_TELEMETRY_BRIDGE","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/bridge\/psr18\/telemetry\/src\/Flow\/Bridge\/Psr18\/Telemetry\/DSL\/functions.php","start_line_in_file":16,"slug":"psr18-traceable-client","name":"psr18_traceable_client","namespace":"Flow\\Bridge\\Psr18\\Telemetry\\DSL","parameters":[{"name":"client","type":[{"name":"ClientInterface","namespace":"Psr\\Http\\Client","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"telemetry","type":[{"name":"Telemetry","namespace":"Flow\\Telemetry","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"urlSanitizer","type":[{"name":"UrlSanitizer","namespace":"Flow\\Telemetry\\Sanitizer","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Telemetry\\Sanitizer\\UrlSanitizer::..."}],"return_type":[{"name":"PSR18TraceableClient","namespace":"Flow\\Bridge\\Psr18\\Telemetry","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"PSR18_TELEMETRY_BRIDGE","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/bridge\/telemetry\/otlp\/src\/Flow\/Bridge\/Telemetry\/OTLP\/DSL\/functions.php","start_line_in_file":49,"slug":"otlp-json-serializer","name":"otlp_json_serializer","namespace":"Flow\\Bridge\\Telemetry\\OTLP\\DSL","parameters":[],"return_type":[{"name":"JsonSerializer","namespace":"Flow\\Bridge\\Telemetry\\OTLP\\Serializer","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY_OTLP","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIEpTT04gc2VyaWFsaXplciBmb3IgT1RMUC4KICoKICogUmV0dXJucyBhIEpzb25TZXJpYWxpemVyIHRoYXQgY29udmVydHMgdGVsZW1ldHJ5IGRhdGEgdG8gT1RMUCBKU09OIHdpcmUgZm9ybWF0LgogKiBVc2UgdGhpcyB3aXRoIEN1cmxUcmFuc3BvcnQgZm9yIEpTT04gb3ZlciBIVFRQLgogKgogKiBFeGFtcGxlIHVzYWdlOgogKiBgYGBwaHAKICogJHNlcmlhbGl6ZXIgPSBvdGxwX2pzb25fc2VyaWFsaXplcigpOwogKiAkdHJhbnNwb3J0ID0gb3RscF9jdXJsX3RyYW5zcG9ydCgkZW5kcG9pbnQsICRzZXJpYWxpemVyKTsKICogYGBgCiAqLw=="},{"repository_path":"src\/bridge\/telemetry\/otlp\/src\/Flow\/Bridge\/Telemetry\/OTLP\/DSL\/functions.php","start_line_in_file":70,"slug":"otlp-protobuf-serializer","name":"otlp_protobuf_serializer","namespace":"Flow\\Bridge\\Telemetry\\OTLP\\DSL","parameters":[],"return_type":[{"name":"ProtobufSerializer","namespace":"Flow\\Bridge\\Telemetry\\OTLP\\Serializer","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY_OTLP","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIFByb3RvYnVmIHNlcmlhbGl6ZXIgZm9yIE9UTFAuCiAqCiAqIFJldHVybnMgYSBQcm90b2J1ZlNlcmlhbGl6ZXIgdGhhdCBjb252ZXJ0cyB0ZWxlbWV0cnkgZGF0YSB0byBPVExQIFByb3RvYnVmIGJpbmFyeSBmb3JtYXQuCiAqIFVzZSB0aGlzIHdpdGggQ3VybFRyYW5zcG9ydCBmb3IgUHJvdG9idWYgb3ZlciBIVFRQLCBvciB3aXRoIEdycGNUcmFuc3BvcnQuCiAqCiAqIFJlcXVpcmVzOgogKiAtIGdvb2dsZS9wcm90b2J1ZiBwYWNrYWdlCiAqCiAqIEV4YW1wbGUgdXNhZ2U6CiAqIGBgYHBocAogKiAkc2VyaWFsaXplciA9IG90bHBfcHJvdG9idWZfc2VyaWFsaXplcigpOwogKiAkdHJhbnNwb3J0ID0gb3RscF9jdXJsX3RyYW5zcG9ydCgkZW5kcG9pbnQsICRzZXJpYWxpemVyKTsKICogYGBgCiAqLw=="},{"repository_path":"src\/bridge\/telemetry\/otlp\/src\/Flow\/Bridge\/Telemetry\/OTLP\/DSL\/functions.php","start_line_in_file":94,"slug":"otlp-grpc-transport","name":"otlp_grpc_transport","namespace":"Flow\\Bridge\\Telemetry\\OTLP\\DSL","parameters":[{"name":"endpoint","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"headers","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"insecure","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"},{"name":"timeoutMs","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"250"},{"name":"shutdownTimeoutMs","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"5000"},{"name":"failover","type":[{"name":"Transport","namespace":"Flow\\Bridge\\Telemetry\\OTLP\\Transport","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Transport","namespace":"Flow\\Bridge\\Telemetry\\OTLP\\Transport","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY_OTLP","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIGdSUEMgdHJhbnNwb3J0IGZvciBPVExQIGVuZHBvaW50cy4KICoKICogQ3JlYXRlcyBhIEdycGNUcmFuc3BvcnQgY29uZmlndXJlZCB0byBzZW5kIHRlbGVtZXRyeSBkYXRhIHRvIGFuIE9UTFAtY29tcGF0aWJsZQogKiBlbmRwb2ludCB1c2luZyBnUlBDIHByb3RvY29sIHdpdGggUHJvdG9idWYgc2VyaWFsaXphdGlvbi4gT1RMUC9nUlBDIG1hbmRhdGVzCiAqIFByb3RvYnVmLCBzbyB0aGUgc2VyaWFsaXplciBpcyBidWlsdCBpbnRlcm5hbGx5IGFuZCBub3QgY29uZmlndXJhYmxlLgogKgogKiBSZXF1aXJlczoKICogLSBleHQtZ3JwYyBQSFAgZXh0ZW5zaW9uCiAqIC0gZ29vZ2xlL3Byb3RvYnVmIHBhY2thZ2UKICoKICogQHBhcmFtIHN0cmluZyAkZW5kcG9pbnQgZ1JQQyBlbmRwb2ludCAoZS5nLiwgJ2xvY2FsaG9zdDo0MzE3JykKICogQHBhcmFtIGFycmF5PHN0cmluZywgc3RyaW5nPiAkaGVhZGVycyBBZGRpdGlvbmFsIGhlYWRlcnMgKG1ldGFkYXRhKSB0byBpbmNsdWRlIGluIHJlcXVlc3RzCiAqIEBwYXJhbSBib29sICRpbnNlY3VyZSBXaGV0aGVyIHRvIHVzZSBpbnNlY3VyZSBjaGFubmVsIGNyZWRlbnRpYWxzIChkZWZhdWx0IHRydWUgZm9yIGxvY2FsIGRldikKICogQHBhcmFtIGludCAkdGltZW91dE1zIFBlci1jYWxsIGRlYWRsaW5lIGluIG1pbGxpc2Vjb25kcyAoY292ZXJzIGNvbm5lY3QgKyBzZW5kICsgcmVjZWl2ZSkKICogQHBhcmFtIGludCAkc2h1dGRvd25UaW1lb3V0TXMgV2FsbC1jbG9jayBidWRnZXQgZm9yIGRyYWluaW5nIHBlbmRpbmcgY2FsbHMgYXQgc2h1dGRvd24KICogQHBhcmFtID9UcmFuc3BvcnQgJGZhaWxvdmVyIE9wdGlvbmFsIGZhaWxvdmVyIHRyYW5zcG9ydCByZWNlaXZpbmcgcHJpb3IgYmF0Y2hlcyB3aGVuIHByaW1hcnkgZmFpbHMKICov"},{"repository_path":"src\/bridge\/telemetry\/otlp\/src\/Flow\/Bridge\/Telemetry\/OTLP\/DSL\/functions.php","start_line_in_file":109,"slug":"otlp-curl-options","name":"otlp_curl_options","namespace":"Flow\\Bridge\\Telemetry\\OTLP\\DSL","parameters":[],"return_type":[{"name":"CurlTransportOptions","namespace":"Flow\\Bridge\\Telemetry\\OTLP\\Transport","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY_OTLP","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBjdXJsIHRyYW5zcG9ydCBvcHRpb25zIGZvciBPVExQLgogKi8="},{"repository_path":"src\/bridge\/telemetry\/otlp\/src\/Flow\/Bridge\/Telemetry\/OTLP\/DSL\/functions.php","start_line_in_file":130,"slug":"otlp-curl-transport","name":"otlp_curl_transport","namespace":"Flow\\Bridge\\Telemetry\\OTLP\\DSL","parameters":[{"name":"endpoint","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"serializer","type":[{"name":"JsonSerializer","namespace":"Flow\\Bridge\\Telemetry\\OTLP\\Serializer","is_nullable":false,"is_variadic":false},{"name":"ProtobufSerializer","namespace":"Flow\\Bridge\\Telemetry\\OTLP\\Serializer","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Bridge\\Telemetry\\OTLP\\Serializer\\JsonSerializer::..."},{"name":"options","type":[{"name":"CurlTransportOptions","namespace":"Flow\\Bridge\\Telemetry\\OTLP\\Transport","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Bridge\\Telemetry\\OTLP\\Transport\\CurlTransportOptions::..."},{"name":"failover","type":[{"name":"Transport","namespace":"Flow\\Bridge\\Telemetry\\OTLP\\Transport","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Transport","namespace":"Flow\\Bridge\\Telemetry\\OTLP\\Transport","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY_OTLP","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIHN5bmNocm9ub3VzIGN1cmwgdHJhbnNwb3J0IGZvciBPVExQIGVuZHBvaW50cy4KICoKICogQ3JlYXRlcyBhIEN1cmxUcmFuc3BvcnQgdGhhdCBkcml2ZXMgZWFjaCByZXF1ZXN0IHRvIGNvbXBsZXRpb24gYW5kIHJlcG9ydHMgdGhlCiAqIG91dGNvbWUgaW1tZWRpYXRlbHkgKHJldHVybnMgb24gc3VjY2VzcywgdGhyb3dzIG9uIGZhaWx1cmUpLiBPVExQL0hUVFAgYWxsb3dzCiAqIEpTT04gb3IgUHJvdG9idWYgZW5jb2Rpbmc7IGRlZmF1bHRzIHRvIEpTT04uIEtlZXBpbmcgZXhwb3J0IG9mZiB0aGUgYXBwbGljYXRpb24KICogaG90IHBhdGggaXMgdGhlIGpvYiBvZiB0aGUgYmF0Y2hpbmcgcHJvY2Vzc29yIGluIGZyb250IG9mIHRoZSBleHBvcnRlci4KICoKICogUmVxdWlyZXM6IGV4dC1jdXJsIFBIUCBleHRlbnNpb24KICoKICogQHBhcmFtIHN0cmluZyAkZW5kcG9pbnQgT1RMUCBlbmRwb2ludCBVUkwgKGUuZy4sICdodHRwOi8vbG9jYWxob3N0OjQzMTgnKQogKiBAcGFyYW0gSnNvblNlcmlhbGl6ZXJ8UHJvdG9idWZTZXJpYWxpemVyICRzZXJpYWxpemVyIFNlcmlhbGl6ZXIgZm9yIGVuY29kaW5nIHRlbGVtZXRyeSBkYXRhIChKU09OIG9yIFByb3RvYnVmKQogKiBAcGFyYW0gQ3VybFRyYW5zcG9ydE9wdGlvbnMgJG9wdGlvbnMgVHJhbnNwb3J0IGNvbmZpZ3VyYXRpb24gb3B0aW9ucwogKiBAcGFyYW0gP1RyYW5zcG9ydCAkZmFpbG92ZXIgT3B0aW9uYWwgZmFpbG92ZXIgdHJhbnNwb3J0IHJlY2VpdmluZyB0aGUgYmF0Y2ggd2hlbiB0aGUgcHJpbWFyeSBmYWlscwogKi8="},{"repository_path":"src\/bridge\/telemetry\/otlp\/src\/Flow\/Bridge\/Telemetry\/OTLP\/DSL\/functions.php","start_line_in_file":143,"slug":"otlp-async-curl-options","name":"otlp_async_curl_options","namespace":"Flow\\Bridge\\Telemetry\\OTLP\\DSL","parameters":[],"return_type":[{"name":"AsyncCurlTransportOptions","namespace":"Flow\\Bridge\\Telemetry\\OTLP\\Transport","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY_OTLP","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhc3luYyBjdXJsIHRyYW5zcG9ydCBvcHRpb25zIGZvciBPVExQLgogKi8="},{"repository_path":"src\/bridge\/telemetry\/otlp\/src\/Flow\/Bridge\/Telemetry\/OTLP\/DSL\/functions.php","start_line_in_file":158,"slug":"otlp-async-curl-transport","name":"otlp_async_curl_transport","namespace":"Flow\\Bridge\\Telemetry\\OTLP\\DSL","parameters":[{"name":"endpoint","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"serializer","type":[{"name":"JsonSerializer","namespace":"Flow\\Bridge\\Telemetry\\OTLP\\Serializer","is_nullable":false,"is_variadic":false},{"name":"ProtobufSerializer","namespace":"Flow\\Bridge\\Telemetry\\OTLP\\Serializer","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Bridge\\Telemetry\\OTLP\\Serializer\\JsonSerializer::..."},{"name":"options","type":[{"name":"AsyncCurlTransportOptions","namespace":"Flow\\Bridge\\Telemetry\\OTLP\\Transport","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Bridge\\Telemetry\\OTLP\\Transport\\AsyncCurlTransportOptions::..."},{"name":"failover","type":[{"name":"Transport","namespace":"Flow\\Bridge\\Telemetry\\OTLP\\Transport","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"error_handler","type":[{"name":"ErrorHandler","namespace":"Flow\\Telemetry\\ErrorHandler","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Telemetry\\ErrorHandler\\ErrorLogHandler::..."}],"return_type":[{"name":"AsyncCurlTransport","namespace":"Flow\\Bridge\\Telemetry\\OTLP\\Transport","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY_OTLP","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBhc3luY2hyb25vdXMgY3VybCB0cmFuc3BvcnQgZm9yIE9UTFAgZW5kcG9pbnRzLgogKgogKiBAcGFyYW0gc3RyaW5nICRlbmRwb2ludCBPVExQIGVuZHBvaW50IFVSTCAoZS5nLiwgJ2h0dHA6Ly9sb2NhbGhvc3Q6NDMxOCcpCiAqIEBwYXJhbSBKc29uU2VyaWFsaXplcnxQcm90b2J1ZlNlcmlhbGl6ZXIgJHNlcmlhbGl6ZXIgU2VyaWFsaXplciBmb3IgZW5jb2RpbmcgdGVsZW1ldHJ5IGRhdGEgKEpTT04gb3IgUHJvdG9idWYpCiAqIEBwYXJhbSBBc3luY0N1cmxUcmFuc3BvcnRPcHRpb25zICRvcHRpb25zIFRyYW5zcG9ydCBjb25maWd1cmF0aW9uIG9wdGlvbnMKICogQHBhcmFtID9UcmFuc3BvcnQgJGZhaWxvdmVyIE9wdGlvbmFsIGZhaWxvdmVyIHRyYW5zcG9ydCByZWNlaXZpbmcgcHJpb3IgYmF0Y2hlcyB3aGVuIHByaW1hcnkgZmFpbHMKICogQHBhcmFtIEVycm9ySGFuZGxlciAkZXJyb3JfaGFuZGxlciBIYW5kbGVyIGZvciBmYWlsdXJlcyByZWFwZWQgb24gc2VuZCgpL3RpY2soKS9zaHV0ZG93bigpIChubyBmYWlsb3ZlcikKICov"},{"repository_path":"src\/bridge\/telemetry\/otlp\/src\/Flow\/Bridge\/Telemetry\/OTLP\/DSL\/functions.php","start_line_in_file":180,"slug":"otlp-stream-transport","name":"otlp_stream_transport","namespace":"Flow\\Bridge\\Telemetry\\OTLP\\DSL","parameters":[{"name":"destination","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"filePermissions","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"420"},{"name":"createDirectories","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"}],"return_type":[{"name":"Transport","namespace":"Flow\\Bridge\\Telemetry\\OTLP\\Transport","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY_OTLP","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIHN0cmVhbSB0cmFuc3BvcnQgZm9yIE9UTFAgdGhhdCB3cml0ZXMgSlNPTkwgdG8gYSBzaW5nbGUgZGVzdGluYXRpb24uCiAqCiAqIEFjY2VwdHMgYW4gYWJzb2x1dGUgZmlsZSBwYXRoIG9yIGEgcGhwOi8vIHN0cmVhbSB3cmFwcGVyIHN1Y2ggYXMKICogJ3BocDovL3N0ZG91dCcsICdwaHA6Ly9zdGRlcnInLCAncGhwOi8vbWVtb3J5Jywgb3IgJ3BocDovL3RlbXAnLiBFYWNoCiAqIGV4cG9ydCgpIGNhbGwgYXBwZW5kcyBvbmUgSlNPTiBMaW5lIHVuZGVyIExPQ0tfRVggc28gY29uY3VycmVudCB3cml0ZXJzCiAqIGludGVybGVhdmUgYXQgbGluZSBib3VuZGFyaWVzLiBUaGUgJGZpbGVQZXJtaXNzaW9ucyBhbmQgJGNyZWF0ZURpcmVjdG9yaWVzCiAqIHBhcmFtZXRlcnMgYXBwbHkgb25seSB3aGVuIHRoZSBkZXN0aW5hdGlvbiBpcyBhIGZpbGUgcGF0aC4KICoKICogUGVyIHRoZSBPVExQIEZpbGUgRXhwb3J0ZXIgc3BlYyBvbmx5IEpTT04gZW5jb2RpbmcgaXMgc3VwcG9ydGVkLgogKi8="},{"repository_path":"src\/bridge\/telemetry\/otlp\/src\/Flow\/Bridge\/Telemetry\/OTLP\/DSL\/functions.php","start_line_in_file":203,"slug":"otlp-exporter","name":"otlp_exporter","namespace":"Flow\\Bridge\\Telemetry\\OTLP\\DSL","parameters":[{"name":"transport","type":[{"name":"Transport","namespace":"Flow\\Bridge\\Telemetry\\OTLP\\Transport","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"errorHandler","type":[{"name":"ErrorHandler","namespace":"Flow\\Telemetry\\ErrorHandler","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Telemetry\\ErrorHandler\\ErrorLogHandler::..."}],"return_type":[{"name":"OTLPExporter","namespace":"Flow\\Bridge\\Telemetry\\OTLP\\Exporter","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY_OTLP","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhbiBPVExQIGV4cG9ydGVyIHRoYXQgZGlzcGF0Y2hlcyBsb2dzLCBtZXRyaWNzLCBhbmQgc3BhbnMgdGhyb3VnaCBhIHNpbmdsZSB0cmFuc3BvcnQuCiAqCiAqIEV4YW1wbGUgdXNhZ2U6CiAqIGBgYHBocAogKiAkZXhwb3J0ZXIgPSBvdGxwX2V4cG9ydGVyKCR0cmFuc3BvcnQpOwogKiAkc3BhblByb2Nlc3NvciA9IGJhdGNoaW5nX3NwYW5fcHJvY2Vzc29yKCRleHBvcnRlcik7CiAqICRtZXRyaWNQcm9jZXNzb3IgPSBiYXRjaGluZ19tZXRyaWNfcHJvY2Vzc29yKCRleHBvcnRlcik7CiAqICRsb2dQcm9jZXNzb3IgPSBiYXRjaGluZ19sb2dfcHJvY2Vzc29yKCRleHBvcnRlcik7CiAqIGBgYAogKgogKiBAcGFyYW0gVHJhbnNwb3J0ICR0cmFuc3BvcnQgVGhlIHRyYW5zcG9ydCBmb3Igc2VuZGluZyB0ZWxlbWV0cnkgZGF0YQogKiBAcGFyYW0gRXJyb3JIYW5kbGVyICRlcnJvckhhbmRsZXIgSGFuZGxlciBmb3IgVGhyb3dhYmxlcyByYWlzZWQgYnkgdGhlIHRyYW5zcG9ydAogKi8="},{"repository_path":"src\/bridge\/telemetry\/otlp\/src\/Flow\/Bridge\/Telemetry\/OTLP\/DSL\/functions.php","start_line_in_file":217,"slug":"otlp-tracer-provider","name":"otlp_tracer_provider","namespace":"Flow\\Bridge\\Telemetry\\OTLP\\DSL","parameters":[{"name":"processor","type":[{"name":"SpanProcessor","namespace":"Flow\\Telemetry\\Tracer","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"clock","type":[{"name":"ClockInterface","namespace":"Psr\\Clock","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"sampler","type":[{"name":"Sampler","namespace":"Flow\\Telemetry\\Tracer\\Sampler","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Telemetry\\Tracer\\Sampler\\ParentBasedSampler::..."},{"name":"contextStorage","type":[{"name":"ContextStorage","namespace":"Flow\\Telemetry\\Context","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Telemetry\\Context\\MemoryContextStorage::..."}],"return_type":[{"name":"TracerProvider","namespace":"Flow\\Telemetry\\Tracer","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY_OTLP","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIHRyYWNlciBwcm92aWRlciBjb25maWd1cmVkIGZvciBPVExQIGV4cG9ydC4KICoKICogQHBhcmFtIFNwYW5Qcm9jZXNzb3IgJHByb2Nlc3NvciBUaGUgcHJvY2Vzc29yIGZvciBoYW5kbGluZyBzcGFucwogKiBAcGFyYW0gQ2xvY2tJbnRlcmZhY2UgJGNsb2NrIFRoZSBjbG9jayBmb3IgdGltZXN0YW1wcwogKiBAcGFyYW0gU2FtcGxlciAkc2FtcGxlciBUaGUgc2FtcGxlciBmb3IgZGVjaWRpbmcgd2hldGhlciB0byByZWNvcmQgc3BhbnMKICogQHBhcmFtIENvbnRleHRTdG9yYWdlICRjb250ZXh0U3RvcmFnZSBUaGUgY29udGV4dCBzdG9yYWdlIGZvciBwcm9wYWdhdGluZyB0cmFjZSBjb250ZXh0CiAqLw=="},{"repository_path":"src\/bridge\/telemetry\/otlp\/src\/Flow\/Bridge\/Telemetry\/OTLP\/DSL\/functions.php","start_line_in_file":234,"slug":"otlp-meter-provider","name":"otlp_meter_provider","namespace":"Flow\\Bridge\\Telemetry\\OTLP\\DSL","parameters":[{"name":"processor","type":[{"name":"MetricProcessor","namespace":"Flow\\Telemetry\\Meter","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"clock","type":[{"name":"ClockInterface","namespace":"Psr\\Clock","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"temporality","type":[{"name":"AggregationTemporality","namespace":"Flow\\Telemetry\\Meter","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Telemetry\\Meter\\AggregationTemporality::..."}],"return_type":[{"name":"MeterProvider","namespace":"Flow\\Telemetry\\Meter","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY_OTLP","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIG1ldGVyIHByb3ZpZGVyIGNvbmZpZ3VyZWQgZm9yIE9UTFAgZXhwb3J0LgogKgogKiBAcGFyYW0gTWV0cmljUHJvY2Vzc29yICRwcm9jZXNzb3IgVGhlIHByb2Nlc3NvciBmb3IgaGFuZGxpbmcgbWV0cmljcwogKiBAcGFyYW0gQ2xvY2tJbnRlcmZhY2UgJGNsb2NrIFRoZSBjbG9jayBmb3IgdGltZXN0YW1wcwogKiBAcGFyYW0gQWdncmVnYXRpb25UZW1wb3JhbGl0eSAkdGVtcG9yYWxpdHkgVGhlIGFnZ3JlZ2F0aW9uIHRlbXBvcmFsaXR5IGZvciBtZXRyaWNzCiAqLw=="},{"repository_path":"src\/bridge\/telemetry\/otlp\/src\/Flow\/Bridge\/Telemetry\/OTLP\/DSL\/functions.php","start_line_in_file":250,"slug":"otlp-logger-provider","name":"otlp_logger_provider","namespace":"Flow\\Bridge\\Telemetry\\OTLP\\DSL","parameters":[{"name":"processor","type":[{"name":"LogProcessor","namespace":"Flow\\Telemetry\\Logger","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"clock","type":[{"name":"ClockInterface","namespace":"Psr\\Clock","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"contextStorage","type":[{"name":"ContextStorage","namespace":"Flow\\Telemetry\\Context","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\Telemetry\\Context\\MemoryContextStorage::..."}],"return_type":[{"name":"LoggerProvider","namespace":"Flow\\Telemetry\\Logger","is_nullable":false,"is_variadic":false}],"attributes":[{"name":"DocumentationDSL","namespace":"Flow\\Documentation\\Attribute","arguments":{"module":"TELEMETRY_OTLP","type":"HELPER"}}],"scalar_function_chain":false,"doc_comment":"LyoqCiAqIENyZWF0ZSBhIGxvZ2dlciBwcm92aWRlciBjb25maWd1cmVkIGZvciBPVExQIGV4cG9ydC4KICoKICogQHBhcmFtIExvZ1Byb2Nlc3NvciAkcHJvY2Vzc29yIFRoZSBwcm9jZXNzb3IgZm9yIGhhbmRsaW5nIGxvZyByZWNvcmRzCiAqIEBwYXJhbSBDbG9ja0ludGVyZmFjZSAkY2xvY2sgVGhlIGNsb2NrIGZvciB0aW1lc3RhbXBzCiAqIEBwYXJhbSBDb250ZXh0U3RvcmFnZSAkY29udGV4dFN0b3JhZ2UgVGhlIGNvbnRleHQgc3RvcmFnZSBmb3IgcHJvcGFnYXRpbmcgY29udGV4dAogKi8="}] \ No newline at end of file diff --git a/web/landing/src/Flow/Website/Command/GenerateDataFrameCompleterCommand.php b/web/landing/src/Flow/Website/Command/GenerateDataFrameCompleterCommand.php index 83711d1c55..c14bc0be6c 100644 --- a/web/landing/src/Flow/Website/Command/GenerateDataFrameCompleterCommand.php +++ b/web/landing/src/Flow/Website/Command/GenerateDataFrameCompleterCommand.php @@ -64,7 +64,7 @@ protected function execute(InputInterface $input, OutputInterface $output): int ->read(from_json($dslJsonPath)) ->collect() ->filter(ref('return_type')->isNotNull()) - ->withEntry( + ->withColumn( 'has_flow_return', ref('return_type') ->onEach( @@ -87,7 +87,7 @@ protected function execute(InputInterface $input, OutputInterface $output): int ->read(from_json($apiJsonPath)) ->collect() ->filter(ref('return_type')->isNotNull()) - ->withEntry( + ->withColumn( 'returns_dataframe', ref('return_type') ->onEach( diff --git a/web/landing/src/Flow/Website/Command/GenerateFlowCompleterCommand.php b/web/landing/src/Flow/Website/Command/GenerateFlowCompleterCommand.php index 3ecd90e1b3..addd41460b 100644 --- a/web/landing/src/Flow/Website/Command/GenerateFlowCompleterCommand.php +++ b/web/landing/src/Flow/Website/Command/GenerateFlowCompleterCommand.php @@ -59,7 +59,7 @@ protected function execute(InputInterface $input, OutputInterface $output): int ->read(from_json($dslJsonPath)) ->collect() ->filter(ref('return_type')->isNotNull()) - ->withEntry( + ->withColumn( 'has_flow_return', ref('return_type') ->onEach( diff --git a/web/landing/src/Flow/Website/Service/Examples.php b/web/landing/src/Flow/Website/Service/Examples.php index 13b7f55899..528aa0ace9 100644 --- a/web/landing/src/Flow/Website/Service/Examples.php +++ b/web/landing/src/Flow/Website/Service/Examples.php @@ -210,7 +210,7 @@ public function examples(string $topic): array // say) would otherwise be walked as one and scandir() would return false on it $examples = array_values(array_filter( array_diff(type_list(type_string())->assert(scandir($path)), ['..', '.']), - fn(string $entry): bool => is_dir(sprintf('%s/%s', $path, $entry)), + fn(string $name): bool => is_dir(sprintf('%s/%s', $path, $name)), )); if (0 === count($examples)) { diff --git a/web/landing/src/Flow/Website/Service/Github.php b/web/landing/src/Flow/Website/Service/Github.php index e8ebb2f85b..fcd509c78e 100644 --- a/web/landing/src/Flow/Website/Service/Github.php +++ b/web/landing/src/Flow/Website/Service/Github.php @@ -52,10 +52,10 @@ public function contributors(): array df($this->configFactory->configBuilderWithCache('github_contributors')) ->read(from_cache('flow_github_contributors', $from_github)) ->cache('flow_github_contributors') - ->withEntry('unpacked', ref('response_body')->jsonDecode()) + ->withColumn('unpacked', ref('response_body')->jsonDecode()) ->select('unpacked') - ->withEntry('data', ref('unpacked')->expand()) - ->withEntry( + ->withColumn('data', ref('unpacked')->expand()) + ->withColumn( 'data', ref('data')->unpack(schema(str_schema('login'), str_schema('avatar_url'), str_schema('html_url'))), ) @@ -64,7 +64,7 @@ public function contributors(): array ->filter(not(ref('login')->endsWith(lit('[bot]')))) ->filter(not(ref('login')->equals(lit('aeon-automation')))) ->filter(not(ref('login')->equals(lit('norbertmwk')))) - ->withEntry('avatar_url', ref('avatar_url')->concat(lit('&s=128'))) + ->withColumn('avatar_url', ref('avatar_url')->concat(lit('&s=128'))) ->limit(24) ->write(to_memory($memory = new ArrayMemory())) ->run(); diff --git a/web/landing/src/Flow/Website/Service/Manifest/Manifest.php b/web/landing/src/Flow/Website/Service/Manifest/Manifest.php index 6f49f2693b..1f1920e061 100644 --- a/web/landing/src/Flow/Website/Service/Manifest/Manifest.php +++ b/web/landing/src/Flow/Website/Service/Manifest/Manifest.php @@ -55,11 +55,11 @@ private function load(): array $byName = []; - foreach ($decoded['packages'] ?? [] as $entry) { - if (!isset($entry['name']) || !is_string($entry['name'])) { + foreach ($decoded['packages'] ?? [] as $package) { + if (!isset($package['name']) || !is_string($package['name'])) { continue; } - $byName[$entry['name']] = $entry; + $byName[$package['name']] = $package; } return $this->byName = $byName; diff --git a/web/landing/src/Flow/Website/Service/Manifest/PackageMeta.php b/web/landing/src/Flow/Website/Service/Manifest/PackageMeta.php index abf296ecc6..34fdc34d8c 100644 --- a/web/landing/src/Flow/Website/Service/Manifest/PackageMeta.php +++ b/web/landing/src/Flow/Website/Service/Manifest/PackageMeta.php @@ -67,13 +67,13 @@ public function forDslModule(string $module): ?string */ public function forPackage(string $packageName): ?array { - $entry = $this->manifest->byName($packageName); + $package = $this->manifest->byName($packageName); - if ($entry === null) { + if ($package === null) { return null; } - $type = is_string($entry['type'] ?? null) ? $entry['type'] : null; + $type = is_string($package['type'] ?? null) ? $package['type'] : null; if ($type === null || !isset(self::TYPE_LABEL[$type])) { return null; diff --git a/web/landing/src/Flow/Website/Service/Markdown/FlowManifestRenderer.php b/web/landing/src/Flow/Website/Service/Markdown/FlowManifestRenderer.php index 2b623c5c8a..3f7b91050d 100644 --- a/web/landing/src/Flow/Website/Service/Markdown/FlowManifestRenderer.php +++ b/web/landing/src/Flow/Website/Service/Markdown/FlowManifestRenderer.php @@ -201,9 +201,9 @@ private function packages(): array { $packages = []; - foreach ($this->manifest->all() as $entry) { - $type = is_string($entry['type'] ?? null) ? $entry['type'] : null; - $name = is_string($entry['name'] ?? null) ? $entry['name'] : null; + foreach ($this->manifest->all() as $package) { + $type = is_string($package['type'] ?? null) ? $package['type'] : null; + $name = is_string($package['name'] ?? null) ? $package['name'] : null; if ($type === null || $name === null) { continue; diff --git a/web/landing/tests/Flow/Website/Tests/Integration/Command/GenerateDataFrameCompleterCommandTest.php b/web/landing/tests/Flow/Website/Tests/Integration/Command/GenerateDataFrameCompleterCommandTest.php index 99a2a2ca32..0596a8e2a3 100644 --- a/web/landing/tests/Flow/Website/Tests/Integration/Command/GenerateDataFrameCompleterCommandTest.php +++ b/web/landing/tests/Flow/Website/Tests/Integration/Command/GenerateDataFrameCompleterCommandTest.php @@ -25,7 +25,7 @@ public function test_generated_js_contains_core_dataframe_methods(): void $content = type_string()->assert(file_get_contents($this->getOutputPath('dataframe.js'))); - $coreMethods = ['write', 'collect', 'fetch', 'run', 'withEntry', 'select', 'drop', 'filter', 'limit']; + $coreMethods = ['write', 'collect', 'fetch', 'run', 'withColumn', 'select', 'drop', 'filter', 'limit']; foreach ($coreMethods as $method) { static::assertStringContainsString( diff --git a/web/landing/tests/Flow/Website/Tests/Unit/Service/Manifest/ManifestTest.php b/web/landing/tests/Flow/Website/Tests/Unit/Service/Manifest/ManifestTest.php index 9e3db99028..8d16a4c696 100644 --- a/web/landing/tests/Flow/Website/Tests/Unit/Service/Manifest/ManifestTest.php +++ b/web/landing/tests/Flow/Website/Tests/Unit/Service/Manifest/ManifestTest.php @@ -46,11 +46,11 @@ public function test_by_name_returns_package_entry(): void ['name' => 'flow-php/parquet', 'path' => 'src/lib/parquet', 'type' => 'lib'], ])); - $entry = $manifest->byName('flow-php/parquet'); + $package = $manifest->byName('flow-php/parquet'); - static::assertNotNull($entry); - static::assertSame('flow-php/parquet', $entry['name']); - static::assertSame('lib', $entry['type']); + static::assertNotNull($package); + static::assertSame('flow-php/parquet', $package['name']); + static::assertSame('lib', $package['type']); } public function test_load_is_cached_between_calls(): void From f2f0bcb358a56ac966c6b5aca2bd1970eefb17c1 Mon Sep 17 00:00:00 2001 From: Norbert Orzechowicz Date: Wed, 21 Oct 2026 19:18:34 -0500 Subject: [PATCH 2/2] fix: regenerated dsl definitions --- web/landing/resources/api.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/landing/resources/api.json b/web/landing/resources/api.json index 2e589e9a86..207ac8f580 100644 --- a/web/landing/resources/api.json +++ b/web/landing/resources/api.json @@ -1 +1 @@ -[{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":31,"slug":"and","name":"and","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"function","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"All","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":36,"slug":"andnot","name":"andNot","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"function","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"All","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":41,"slug":"append","name":"append","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"suffix","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Append","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":54,"slug":"arrayfilter","name":"arrayFilter","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"value","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ArrayFilter","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBGaWx0ZXJzIGFuIGFycmF5IGJ5IHJlbW92aW5nIGFsbCBlbGVtZW50cyB0aGF0IG1hdGNoZXMgcGFzc2VkIHZhbHVlLgogICAgICogQXBwbGljYWJsZSB0byBhbGwgZGF0YSBzdHJ1Y3R1cmVzIHRoYXQgY2FuIGJlIGNvbnZlcnRlZCB0byBhbiBhcnJheToKICAgICAqICAgIC0ganNvbgogICAgICogICAgLSBsaXN0CiAgICAgKiAgICAtIG1hcAogICAgICogICAgLSBzdHJ1Y3R1cmUuCiAgICAgKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":59,"slug":"arrayget","name":"arrayGet","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"path","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ArrayGet","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":67,"slug":"arraygetcollection","name":"arrayGetCollection","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"keys","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ArrayGetCollection","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBAcGFyYW0gU2NhbGFyRnVuY3Rpb258YXJyYXk8YXJyYXkta2V5LCBtaXhlZD4gJGtleXMKICAgICAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":72,"slug":"arraygetcollectionfirst","name":"arrayGetCollectionFirst","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"keys","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"ArrayGetCollection","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":85,"slug":"arraykeep","name":"arrayKeep","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"value","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ArrayKeep","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBGaWx0ZXJzIGFuIGFycmF5IGJ5IGtlZXBpbmcgb25seSBlbGVtZW50cyB0aGF0IG1hdGNoZXMgcGFzc2VkIHZhbHVlLgogICAgICogQXBwbGljYWJsZSB0byBhbGwgZGF0YSBzdHJ1Y3R1cmVzIHRoYXQgY2FuIGJlIGNvbnZlcnRlZCB0byBhbiBhcnJheToKICAgICAqICAgLSBqc29uCiAgICAgKiAgIC0gbGlzdAogICAgICogICAtIG1hcAogICAgICogICAtIHN0cnVjdHVyZS4KICAgICAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":98,"slug":"arraykeys","name":"arrayKeys","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"ArrayKeys","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBSZXR1cm5zIGFsbCBrZXlzIGZyb20gYW4gYXJyYXksIGlnbm9yaW5nIHRoZSB2YWx1ZXMuCiAgICAgKiBBcHBsaWNhYmxlIHRvIGFsbCBkYXRhIHN0cnVjdHVyZXMgdGhhdCBjYW4gYmUgY29udmVydGVkIHRvIGFuIGFycmF5OgogICAgICogICAtIGpzb24KICAgICAqICAgLSBsaXN0CiAgICAgKiAgIC0gbWFwCiAgICAgKiAgIC0gc3RydWN0dXJlLgogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":106,"slug":"arraymerge","name":"arrayMerge","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"ref","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ArrayMerge","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBAcGFyYW0gU2NhbGFyRnVuY3Rpb258YXJyYXk8YXJyYXkta2V5LCBtaXhlZD4gJHJlZgogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":111,"slug":"arraymergecollection","name":"arrayMergeCollection","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"ArrayMergeCollection","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":116,"slug":"arraypathexists","name":"arrayPathExists","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"path","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ArrayPathExists","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":121,"slug":"arrayreverse","name":"arrayReverse","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"preserveKeys","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"ArrayReverse","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":126,"slug":"arraysort","name":"arraySort","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"sortFunction","type":[{"name":"Sort","namespace":"Flow\\ETL\\Function\\ArraySort","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"flags","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"recursive","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"}],"return_type":[{"name":"ArraySort","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":142,"slug":"arrayvalues","name":"arrayValues","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"ArrayValues","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBSZXR1cm5zIGFsbCB2YWx1ZXMgZnJvbSBhbiBhcnJheSwgaWdub3JpbmcgdGhlIGtleXMuCiAgICAgKiBBcHBsaWNhYmxlIHRvIGFsbCBkYXRhIHN0cnVjdHVyZXMgdGhhdCBjYW4gYmUgY29udmVydGVkIHRvIGFuIGFycmF5OgogICAgICogICAtIGpzb24KICAgICAqICAgLSBsaXN0CiAgICAgKiAgIC0gbWFwCiAgICAgKiAgIC0gc3RydWN0dXJlLgogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":147,"slug":"ascii","name":"ascii","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"Ascii","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":157,"slug":"between","name":"between","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"lowerBoundRef","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null},{"name":"upperBoundRef","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null},{"name":"boundary","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"Boundary","namespace":"Flow\\ETL\\Function\\Between","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Function\\Between\\Boundary::..."}],"return_type":[{"name":"Between","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBAcGFyYW0gbWl4ZWR8U2NhbGFyRnVuY3Rpb24gJGxvd2VyQm91bmRSZWYKICAgICAqIEBwYXJhbSBtaXhlZHxTY2FsYXJGdW5jdGlvbiAkdXBwZXJCb3VuZFJlZgogICAgICogQHBhcmFtIEJvdW5kYXJ5fFNjYWxhckZ1bmN0aW9uICRib3VuZGFyeQogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":165,"slug":"binarylength","name":"binaryLength","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"BinaryLength","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":174,"slug":"call","name":"call","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"callable","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"returnType","type":[{"name":"Type","namespace":"Flow\\Types","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"arguments","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"refAlias","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"0"}],"return_type":[{"name":"CallUserFunc","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBAcGFyYW0gYXJyYXk8YXJyYXkta2V5LCBtaXhlZD4gJGFyZ3VtZW50cwogICAgICogQHBhcmFtIFR5cGU8bWl4ZWQ+ICRyZXR1cm5UeXBlCiAgICAgKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":183,"slug":"capitalize","name":"capitalize","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"Capitalize","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":191,"slug":"cast","name":"cast","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"type","type":[{"name":"Type","namespace":"Flow\\Types","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Cast","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBAcGFyYW0gc3RyaW5nfFR5cGU8bWl4ZWQ+ICR0eXBlCiAgICAgKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":196,"slug":"chunk","name":"chunk","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"size","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Chunk","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":201,"slug":"coalesce","name":"coalesce","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"params","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"Coalesce","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":206,"slug":"codepointlength","name":"codePointLength","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"CodePointLength","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":211,"slug":"collapsewhitespace","name":"collapseWhitespace","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"CollapseWhitespace","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":216,"slug":"concat","name":"concat","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"params","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"Concat","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":221,"slug":"concatwithseparator","name":"concatWithSeparator","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"separator","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"params","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"ConcatWithSeparator","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":228,"slug":"contains","name":"contains","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"needle","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Contains","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":233,"slug":"dateformat","name":"dateFormat","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"format","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'Y-m-d'"}],"return_type":[{"name":"DateTimeFormat","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":238,"slug":"datetimeformat","name":"dateTimeFormat","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"format","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'Y-m-d H:i:s'"}],"return_type":[{"name":"DateTimeFormat","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":243,"slug":"divide","name":"divide","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"value","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"scale","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"rounding","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"Rounding","namespace":"Flow\\Calculator","is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Divide","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":251,"slug":"domelementattributescount","name":"domElementAttributesCount","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"DOMElementAttributesCount","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":256,"slug":"domelementattributevalue","name":"domElementAttributeValue","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"attribute","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"DOMElementAttributeValue","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":261,"slug":"domelementnamespace","name":"domElementNamespace","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"attribute","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"DOMElementNamespaceValue","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":266,"slug":"domelementnextsibling","name":"domElementNextSibling","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"DOMElementNextSibling","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":271,"slug":"domelementparent","name":"domElementParent","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"DOMElementParent","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":276,"slug":"domelementprevioussibling","name":"domElementPreviousSibling","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"DOMElementPreviousSibling","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":281,"slug":"domelementvalue","name":"domElementValue","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"DOMElementValue","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":286,"slug":"endswith","name":"endsWith","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"needle","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"EndsWith","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":291,"slug":"ensureend","name":"ensureEnd","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"suffix","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"EnsureEnd","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":296,"slug":"ensurestart","name":"ensureStart","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"prefix","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"EnsureStart","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":301,"slug":"enumname","name":"enumName","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"EnumName","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":306,"slug":"enumvalue","name":"enumValue","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"EnumValue","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":311,"slug":"equals","name":"equals","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"ref","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Equals","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":316,"slug":"exists","name":"exists","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"Exists","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":345,"slug":"expand","name":"expand","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"expand","type":[{"name":"ArrayExpand","namespace":"Flow\\ETL\\Function\\ArrayExpand","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Function\\ArrayExpand\\ArrayExpand::..."}],"return_type":[{"name":"ArrayExpand","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBFeHBhbmRzIGVhY2ggdmFsdWUgaW50byBhIGNvbHVtbiwgaWYgdGhlcmUgYXJlIG1vcmUgdGhhbiBvbmUgdmFsdWUsIG11bHRpcGxlIHJvd3Mgd2lsbCBiZSBjcmVhdGVkLgogICAgICogQXJyYXkga2V5cyBhcmUgaWdub3JlZCwgb25seSB2YWx1ZXMgYXJlIHVzZWQgdG8gY3JlYXRlIG5ldyByb3dzLgogICAgICogTmVzdGVkIGluIGFub3RoZXIgZnVuY3Rpb24gKHN0cnVjdHVyZSgpLCBjb25jYXQoKSwgLi4uKSBpdCBzdGlsbCBnaXZlcyBvbmUgcm93IHBlciBlbGVtZW50LiBTZXZlcmFsCiAgICAgKiBleHBhbmRzIGluIG9uZSBleHByZXNzaW9uIGFyZSB6aXBwZWQgdG8gdGhlIGxvbmdlc3QgbGlzdDsgYSBzaG9ydGVyIG9uZSBnaXZlcyBudWxsLCBzbyBpdHMgZWxlbWVudAogICAgICogdHlwZSBiZWNvbWVzIG51bGxhYmxlLiBJdCBpcyByZWZ1c2VkIGluc2lkZSBhbm90aGVyIGFycmF5X2V4cGFuZCgpIGFuZCBpbiBmaWx0ZXIoKSwgdW50aWwoKSwKICAgICAqIGR1cGxpY2F0ZVJvdygpLCBhZ2dyZWdhdGUoKSwgb3ZlcigpIGFuZCBvbkVhY2goKS4KICAgICAqCiAgICAgKiBCZWZvcmU6CiAgICAgKiAgICstLSstLS0tLS0tLS0tLS0tLS0tLS0tKwogICAgICogICB8aWR8ICAgICAgICAgICAgICBhcnJheXwKICAgICAqICAgKy0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rCiAgICAgKiAgIHwgMXx7ImEiOjEsImIiOjIsImMiOjN9fAogICAgICogICArLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSsKICAgICAqCiAgICAgKiBBZnRlcjoKICAgICAqICAgKy0tKy0tLS0tLS0tKwogICAgICogICB8aWR8ZXhwYW5kZWR8CiAgICAgKiAgICstLSstLS0tLS0tLSsKICAgICAqICAgfCAxfCAgICAgICAxfAogICAgICogICB8IDF8ICAgICAgIDJ8CiAgICAgKiAgIHwgMXwgICAgICAgM3wKICAgICAqICAgKy0tKy0tLS0tLS0tKwogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":350,"slug":"greaterthan","name":"greaterThan","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"ref","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null}],"return_type":[{"name":"GreaterThan","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":355,"slug":"greaterthanequal","name":"greaterThanEqual","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"ref","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null}],"return_type":[{"name":"GreaterThanEqual","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":360,"slug":"hash","name":"hash","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"algorithm","type":[{"name":"Algorithm","namespace":"Flow\\ETL\\Hash","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Hash\\NativePHPHash::..."}],"return_type":[{"name":"Hash","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":365,"slug":"htmlqueryselector","name":"htmlQuerySelector","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"path","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"HTMLQuerySelector","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":370,"slug":"htmlqueryselectorall","name":"htmlQuerySelectorAll","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"path","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"HTMLQuerySelectorAll","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":378,"slug":"indexof","name":"indexOf","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"needle","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"ignoreCase","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"offset","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"0"}],"return_type":[{"name":"IndexOf","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBSZXR1cm5zIHRoZSBpbmRleCBvZiBnaXZlbiAkbmVlZGxlIGluIHN0cmluZy4KICAgICAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":389,"slug":"indexoflast","name":"indexOfLast","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"needle","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"ignoreCase","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"offset","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"0"}],"return_type":[{"name":"IndexOfLast","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBSZXR1cm5zIHRoZSBsYXN0IGluZGV4IG9mIGdpdmVuICRuZWVkbGUgaW4gc3RyaW5nLgogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":397,"slug":"isempty","name":"isEmpty","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"IsEmpty","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":402,"slug":"iseven","name":"isEven","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"Equals","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":407,"slug":"isfalse","name":"isFalse","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"Same","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":415,"slug":"isin","name":"isIn","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"haystack","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"IsIn","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBAcGFyYW0gU2NhbGFyRnVuY3Rpb258YXJyYXk8YXJyYXkta2V5LCBtaXhlZD4gJGhheXN0YWNrCiAgICAgKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":420,"slug":"isnotnull","name":"isNotNull","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"IsNotNull","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":425,"slug":"isnotnumeric","name":"isNotNumeric","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"IsNotNumeric","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":430,"slug":"isnull","name":"isNull","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"IsNull","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":435,"slug":"isnumeric","name":"isNumeric","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"IsNumeric","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":440,"slug":"isodd","name":"isOdd","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"NotEquals","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":445,"slug":"istrue","name":"isTrue","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"Same","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":453,"slug":"istype","name":"isType","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"types","type":[{"name":"Type","namespace":"Flow\\Types","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"IsType","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBAcGFyYW0gc3RyaW5nfFR5cGU8bWl4ZWQ+ICR0eXBlcwogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":465,"slug":"isutf8","name":"isUtf8","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"IsUtf8","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBDaGVjayBzdHJpbmcgaXMgdXRmOCBhbmQgcmV0dXJucyB0cnVlIG9yIGZhbHNlLgogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":470,"slug":"jsondecode","name":"jsonDecode","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"flags","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"4194304"}],"return_type":[{"name":"JsonDecode","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":475,"slug":"jsonencode","name":"jsonEncode","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"flags","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"4194304"}],"return_type":[{"name":"JsonEncode","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":480,"slug":"lessthan","name":"lessThan","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"ref","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null}],"return_type":[{"name":"LessThan","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":485,"slug":"lessthanequal","name":"lessThanEqual","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"ref","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"LessThanEqual","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":490,"slug":"literal","name":"literal","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"value","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Literal","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":495,"slug":"lower","name":"lower","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"ToLower","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":500,"slug":"minus","name":"minus","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"ref","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"exact","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"Minus","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":505,"slug":"mod","name":"mod","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"value","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Mod","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":510,"slug":"modifydatetime","name":"modifyDateTime","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"modifier","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ModifyDateTime","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":515,"slug":"multiply","name":"multiply","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"value","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"exact","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"Multiply","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":520,"slug":"notequals","name":"notEquals","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"value","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null}],"return_type":[{"name":"NotEquals","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":525,"slug":"notsame","name":"notSame","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"value","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null}],"return_type":[{"name":"NotSame","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":530,"slug":"numberformat","name":"numberFormat","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"decimals","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"2"},{"name":"decimalSeparator","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'.'"},{"name":"thousandsSeparator","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"','"}],"return_type":[{"name":"NumberFormat","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":544,"slug":"oneach","name":"onEach","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"function","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"preserveKeys","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"}],"return_type":[{"name":"OnEach","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBFeGVjdXRlIGEgc2NhbGFyIGZ1bmN0aW9uIG9uIGVhY2ggZWxlbWVudCBvZiBhbiBhcnJheS9saXN0L21hcC9zdHJ1Y3R1cmUgY29sdW1uLgogICAgICogSW4gb3JkZXIgdG8gdXNlIHRoaXMgZnVuY3Rpb24sIHlvdSBuZWVkIHRvIHByb3ZpZGUgYSByZWZlcmVuY2UgdG8gdGhlICJlbGVtZW50IiB0aGF0IHdpbGwgYmUgdXNlZCBpbiB0aGUgZnVuY3Rpb24uCiAgICAgKgogICAgICogRXhhbXBsZTogJGRmLT53aXRoQ29sdW1uKCdhcnJheScsIHJlZignYXJyYXknKS0+b25FYWNoKHJlZignZWxlbWVudCcpLT5jYXN0KHR5cGVfc3RyaW5nKCkpKSkKICAgICAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":549,"slug":"or","name":"or","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"function","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Any","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":554,"slug":"ornot","name":"orNot","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"function","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Any","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":559,"slug":"plus","name":"plus","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"ref","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"exact","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"Plus","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":564,"slug":"power","name":"power","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"value","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"exact","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"Power","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":569,"slug":"prepend","name":"prepend","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"prefix","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Prepend","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":574,"slug":"regex","name":"regex","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"pattern","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"flags","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"0"},{"name":"offset","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"0"}],"return_type":[{"name":"Regex","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":579,"slug":"regexall","name":"regexAll","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"pattern","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"flags","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"0"},{"name":"offset","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"0"}],"return_type":[{"name":"RegexAll","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":584,"slug":"regexmatch","name":"regexMatch","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"pattern","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"flags","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"0"},{"name":"offset","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"0"}],"return_type":[{"name":"RegexMatch","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":592,"slug":"regexmatchall","name":"regexMatchAll","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"pattern","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"flags","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"0"},{"name":"offset","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"0"}],"return_type":[{"name":"RegexMatchAll","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":600,"slug":"regexreplace","name":"regexReplace","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"pattern","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"replacement","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"limit","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"RegexReplace","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":608,"slug":"repeat","name":"repeat","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"times","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Repeat","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":613,"slug":"reverse","name":"reverse","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"Reverse","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":618,"slug":"round","name":"round","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"precision","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"2"},{"name":"mode","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"1"}],"return_type":[{"name":"Round","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":623,"slug":"same","name":"same","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"value","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Same","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":628,"slug":"sanitize","name":"sanitize","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"placeholder","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'*'"},{"name":"skipCharacters","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Sanitize","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":635,"slug":"size","name":"size","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"Size","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":643,"slug":"slug","name":"slug","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"separator","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'-'"},{"name":"locale","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"symbolsMap","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Slug","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBAcGFyYW0gU2NhbGFyRnVuY3Rpb258bnVsbHxhcnJheTxhcnJheS1rZXksIG1peGVkPiAkc3ltYm9sc01hcAogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":651,"slug":"split","name":"split","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"separator","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"limit","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"9223372036854775807"}],"return_type":[{"name":"Split","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":656,"slug":"sprintf","name":"sprintf","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"params","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":true,"default_value":null}],"return_type":[{"name":"Sprintf","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":661,"slug":"startswith","name":"startsWith","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"needle","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"StartsWith","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":669,"slug":"stringafter","name":"stringAfter","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"needle","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"includeNeedle","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"StringAfter","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBSZXR1cm5zIHRoZSBjb250ZW50cyBmb3VuZCBhZnRlciB0aGUgZmlyc3Qgb2NjdXJyZW5jZSBvZiB0aGUgZ2l2ZW4gc3RyaW5nLgogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":677,"slug":"stringafterlast","name":"stringAfterLast","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"needle","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"includeNeedle","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"StringAfterLast","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBSZXR1cm5zIHRoZSBjb250ZW50cyBmb3VuZCBhZnRlciB0aGUgbGFzdCBvY2N1cnJlbmNlIG9mIHRoZSBnaXZlbiBzdHJpbmcuCiAgICAgKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":687,"slug":"stringbefore","name":"stringBefore","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"needle","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"includeNeedle","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"StringBefore","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBSZXR1cm5zIHRoZSBjb250ZW50cyBmb3VuZCBiZWZvcmUgdGhlIGZpcnN0IG9jY3VycmVuY2Ugb2YgdGhlIGdpdmVuIHN0cmluZy4KICAgICAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":697,"slug":"stringbeforelast","name":"stringBeforeLast","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"needle","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"includeNeedle","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"StringBeforeLast","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBSZXR1cm5zIHRoZSBjb250ZW50cyBmb3VuZCBiZWZvcmUgdGhlIGxhc3Qgb2NjdXJyZW5jZSBvZiB0aGUgZ2l2ZW4gc3RyaW5nLgogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":707,"slug":"stringcontainsany","name":"stringContainsAny","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"needles","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"StringContainsAny","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBAcGFyYW0gYXJyYXk8c3RyaW5nPnxTY2FsYXJGdW5jdGlvbiAkbmVlZGxlcwogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":712,"slug":"stringequalsto","name":"stringEqualsTo","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"string","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"StringEqualsTo","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":720,"slug":"stringfold","name":"stringFold","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"StringFold","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBSZXR1cm5zIGEgc3RyaW5nIHRoYXQgeW91IGNhbiB1c2UgaW4gY2FzZS1pbnNlbnNpdGl2ZSBjb21wYXJpc29ucy4KICAgICAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":725,"slug":"stringmatch","name":"stringMatch","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"pattern","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"StringMatch","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":730,"slug":"stringmatchall","name":"stringMatchAll","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"pattern","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"StringMatchAll","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":735,"slug":"stringnormalize","name":"stringNormalize","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"form","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"16"}],"return_type":[{"name":"StringNormalize","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":744,"slug":"stringstyle","name":"stringStyle","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"style","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"StringStyles","namespace":"Flow\\ETL\\String","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"StringStyle","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBDb3ZlcnQgc3RyaW5nIHRvIGEgc3R5bGUgZnJvbSBlbnVtIGxpc3QsIHBhc3NlZCBpbiBwYXJhbWV0ZXIuCiAgICAgKiBDYW4gYmUgc3RyaW5nICJ1cHBlciIgb3IgU3RyaW5nU3R5bGVzOjpVUFBFUiBmb3IgVXBwZXIgKGV4YW1wbGUpLgogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":752,"slug":"stringtitle","name":"stringTitle","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"allWords","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"StringTitle","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBDaGFuZ2VzIGFsbCBncmFwaGVtZXMvY29kZSBwb2ludHMgdG8gInRpdGxlIGNhc2UiLgogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":757,"slug":"stringwidth","name":"stringWidth","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"StringWidth","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":762,"slug":"strpad","name":"strPad","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"length","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"pad_string","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"' '"},{"name":"type","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"1"}],"return_type":[{"name":"StrPad","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":767,"slug":"strpadboth","name":"strPadBoth","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"length","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"pad_string","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"' '"}],"return_type":[{"name":"StrPad","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":772,"slug":"strpadleft","name":"strPadLeft","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"length","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"pad_string","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"' '"}],"return_type":[{"name":"StrPad","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":777,"slug":"strpadright","name":"strPadRight","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"length","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"pad_string","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"' '"}],"return_type":[{"name":"StrPad","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":786,"slug":"strreplace","name":"strReplace","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"search","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"replace","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"StrReplace","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBAcGFyYW0gYXJyYXk8c3RyaW5nPnxTY2FsYXJGdW5jdGlvbnxzdHJpbmcgJHNlYXJjaAogICAgICogQHBhcmFtIGFycmF5PHN0cmluZz58U2NhbGFyRnVuY3Rpb258c3RyaW5nICRyZXBsYWNlCiAgICAgKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":794,"slug":"todate","name":"toDate","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"format","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'Y-m-d\\\\TH:i:sP'"},{"name":"timeZone","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"DateTimeZone","namespace":"","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"DateTimeZone::..."}],"return_type":[{"name":"ToDate","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBAcGFyYW0gU2NhbGFyRnVuY3Rpb258c3RyaW5nICRmb3JtYXQgLSBjdXJyZW50IGZvcm1hdCBvZiB0aGUgZGF0ZSB0aGF0IHdpbGwgYmUgdXNlZCB0byBjcmVhdGUgRGF0ZVRpbWVJbW11dGFibGUgaW5zdGFuY2UKICAgICAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":805,"slug":"todatetime","name":"toDateTime","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"format","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'Y-m-d H:i:s'"},{"name":"timeZone","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"DateTimeZone","namespace":"","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"DateTimeZone::..."}],"return_type":[{"name":"ToDateTime","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBAcGFyYW0gU2NhbGFyRnVuY3Rpb258c3RyaW5nICRmb3JtYXQgLSBjdXJyZW50IGZvcm1hdCBvZiB0aGUgZGF0ZSB0aGF0IHdpbGwgYmUgdXNlZCB0byBjcmVhdGUgRGF0ZVRpbWVJbW11dGFibGUgaW5zdGFuY2UKICAgICAqIEBwYXJhbSBcRGF0ZVRpbWVab25lfFNjYWxhckZ1bmN0aW9uICR0aW1lWm9uZQogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":812,"slug":"trim","name":"trim","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"type","type":[{"name":"Type","namespace":"Flow\\ETL\\Function\\Trim","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Function\\Trim\\Type::..."},{"name":"characters","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"' \\t\\n\\r\\0\u000b'"}],"return_type":[{"name":"Trim","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":817,"slug":"truncate","name":"truncate","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"length","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"ellipsis","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'...'"}],"return_type":[{"name":"Truncate","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":822,"slug":"unicodelength","name":"unicodeLength","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"UnicodeLength","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":846,"slug":"unpack","name":"unpack","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"schema","type":[{"name":"Schema","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ArrayUnpack","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBVbnBhY2tzIGVhY2ggZWxlbWVudCBvZiBhbiBhcnJheSBpbnRvIGEgbmV3IGNvbHVtbiwgdXNpbmcgdGhlIGFycmF5IGtleSBhcyB0aGUgY29sdW1uIG5hbWUuCiAgICAgKgogICAgICogQmVmb3JlOgogICAgICogICArLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSsKICAgICAqICAgfGlkfCAgICAgICAgICAgICAgYXJyYXl8CiAgICAgKiAgICstLSstLS0tLS0tLS0tLS0tLS0tLS0tKwogICAgICogICB8IDF8eyJhIjoxLCJiIjoyLCJjIjozfXwKICAgICAqICAgfCAyfHsiZCI6NCwiZSI6NSwiZiI6Nn18CiAgICAgKiAgICstLSstLS0tLS0tLS0tLS0tLS0tLS0tKwogICAgICoKICAgICAqIEFmdGVyOgogICAgICogICArLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rCiAgICAgKiAgIHxpZHxhcnIuYnxhcnIuY3xhcnIuZHxhcnIuZXxhcnIuZnwKICAgICAqICAgKy0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKwogICAgICogICB8IDF8ICAgIDJ8ICAgIDN8ICAgICB8ICAgICB8ICAgICB8CiAgICAgKiAgIHwgMnwgICAgIHwgICAgIHwgICAgNHwgICAgNXwgICAgNnwKICAgICAqICAgKy0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKwogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":851,"slug":"upper","name":"upper","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"ToUpper","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":856,"slug":"wordwrap","name":"wordwrap","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"width","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"break","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'\\n'"},{"name":"cut","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"Wordwrap","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":864,"slug":"xpath","name":"xpath","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"string","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"XPath","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ResolvesFromChildren.php","start_line_in_file":12,"slug":"resolved","name":"resolved","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ResolvesFromChildren.php","start_line_in_file":23,"slug":"deterministic","name":"deterministic","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Flow.php","start_line_in_file":23,"slug":"setup","name":"setUp","class":"Flow\\ETL\\Flow","class_slug":"flow","parameters":[{"name":"config","type":[{"name":"ConfigBuilder","namespace":"Flow\\ETL\\Config","is_nullable":false,"is_variadic":false},{"name":"Config","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Flow.php","start_line_in_file":28,"slug":"extract","name":"extract","class":"Flow\\ETL\\Flow","class_slug":"flow","parameters":[{"name":"extractor","type":[{"name":"Extractor","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"DataFrame","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Flow.php","start_line_in_file":33,"slug":"from","name":"from","class":"Flow\\ETL\\Flow","class_slug":"flow","parameters":[{"name":"extractor","type":[{"name":"Extractor","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"DataFrame","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Flow.php","start_line_in_file":38,"slug":"process","name":"process","class":"Flow\\ETL\\Flow","class_slug":"flow","parameters":[{"name":"rows","type":[{"name":"Rows","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"DataFrame","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Flow.php","start_line_in_file":46,"slug":"read","name":"read","class":"Flow\\ETL\\Flow","class_slug":"flow","parameters":[{"name":"extractor","type":[{"name":"Extractor","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"DataFrame","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBBbGlhcyBmb3IgRmxvdzo6ZXh0cmFjdCBmdW5jdGlvbi4KICAgICAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":75,"slug":"aggregate","name":"aggregate","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"aggregations","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"algorithm","type":[{"name":"GroupByAlgorithmBuilder","namespace":"Flow\\ETL\\Config\\Grouping","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAbGF6eQogICAgICoKICAgICAqIEBwYXJhbSBBZ2dyZWdhdGlvbnMgJGFnZ3JlZ2F0aW9ucwogICAgICogQHBhcmFtIG51bGx8R3JvdXBCeUFsZ29yaXRobUJ1aWxkZXIgJGFsZ29yaXRobSBudWxsIGRlZmVycyB0byBjb25maWd1cmF0aW9uOyBhIGJ1aWxkZXIgcGlucyB0aGUKICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGdvcml0aG0gZm9yIHRoaXMgb3BlcmF0aW9uIGFuZCBza2lwcyBhbnkgYXV0b21hdGljIGNob2ljZQogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":99,"slug":"batchby","name":"batchBy","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"column","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"minSize","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBNZXJnZS9TcGxpdCBSb3dzIHlpZWxkZWQgYnkgRXh0cmFjdG9yIGludG8gYmF0Y2hlcyBidXQga2VlcCB0aG9zZSB3aXRoIGNvbW1vbiB2YWx1ZSBpbiBnaXZlbiBjb2x1bW4gdG9nZXRoZXIuCiAgICAgKiBUaGlzIHdvcmtzIHByb3Blcmx5IG9ubHkgb24gc29ydGVkIGRhdGFzZXRzLgogICAgICoKICAgICAqIFdoZW4gbWluU2l6ZSBpcyBub3QgcHJvdmlkZWQsIGJhdGNoZXMgd2lsbCBiZSBjcmVhdGVkIG9ubHkgd2hlbiB0aGVyZSBpcyBhIGNoYW5nZSBpbiB2YWx1ZSBvZiB0aGUgY29sdW1uLgogICAgICogV2hlbiBtaW5TaXplIGlzIHByb3ZpZGVkLCBiYXRjaGVzIHdpbGwgYmUgY3JlYXRlZCBvbmx5IHdoZW4gdGhlcmUgaXMgYSBjaGFuZ2UgaW4gdmFsdWUgb2YgdGhlIGNvbHVtbiBvcgogICAgICogd2hlbiB0aGVyZSBhcmUgYXQgbGVhc3QgbWluU2l6ZSByb3dzIGluIHRoZSBiYXRjaC4KICAgICAqCiAgICAgKiBAcGFyYW0gUmVmZXJlbmNlfHN0cmluZyAkY29sdW1uIC0gY29sdW1uIHRvIGdyb3VwIGJ5IChhbGwgcm93cyB3aXRoIHNhbWUgdmFsdWUgc3RheSB0b2dldGhlcikKICAgICAqIEBwYXJhbSBudWxsfGludDwxLCBtYXg+ICRtaW5TaXplIC0gb3B0aW9uYWwgbWluaW11bSByb3dzIHBlciBiYXRjaCBmb3IgZWZmaWNpZW5jeQogICAgICoKICAgICAqIEBsYXp5CiAgICAgKgogICAgICogQHRocm93cyBJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24KICAgICAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":119,"slug":"batchsize","name":"batchSize","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"size","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBNZXJnZS9TcGxpdCBSb3dzIHlpZWxkZWQgYnkgRXh0cmFjdG9yIGludG8gYmF0Y2hlcyBvZiBnaXZlbiBzaXplLgogICAgICogRm9yIGV4YW1wbGUsIHdoZW4gRXh0cmFjdG9yIGlzIHlpZWxkaW5nIG9uZSByb3cgYXQgdGltZSwgdGhpcyBtZXRob2Qgd2lsbCBtZXJnZSB0aGVtIGludG8gYmF0Y2hlcyBvZiBnaXZlbiBzaXplCiAgICAgKiBiZWZvcmUgcGFzc2luZyB0aGVtIHRvIHRoZSBuZXh0IHBpcGVsaW5lIGVsZW1lbnQuCiAgICAgKiBTaW1pbGFybHkgd2hlbiBFeHRyYWN0b3IgaXMgeWllbGRpbmcgYmF0Y2hlcyBvZiByb3dzLCB0aGlzIG1ldGhvZCB3aWxsIHNwbGl0IHRoZW0gaW50byBzbWFsbGVyIGJhdGNoZXMgb2YgZ2l2ZW4KICAgICAqIHNpemUuCiAgICAgKgogICAgICogSW4gb3JkZXIgdG8gbWVyZ2UgYWxsIFJvd3MgaW50byBhIHNpbmdsZSBiYXRjaCB1c2UgRGF0YUZyYW1lOjpjb2xsZWN0KCkgbWV0aG9kIG9yIHNldCBzaXplIHRvIC0xIG9yIDAuCiAgICAgKgogICAgICogQHBhcmFtIGludDwtMSwgbWF4PiAkc2l6ZQogICAgICoKICAgICAqIEBsYXp5CiAgICAgKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":151,"slug":"cache","name":"cache","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"id","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"cacheBatchSize","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"cache","type":[{"name":"Cache","namespace":"Flow\\ETL","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBTdGFydCBwcm9jZXNzaW5nIHJvd3MgdXAgdG8gdGhpcyBtb21lbnQgYW5kIHB1dCBlYWNoIGluc3RhbmNlIG9mIFJvd3MKICAgICAqIGludG8gcHJldmlvdXNseSBkZWZpbmVkIGNhY2hlLgogICAgICogQ2FjaGUgdHlwZSBjYW4gYmUgc2V0IHRocm91Z2ggQ29uZmlnQnVpbGRlci4KICAgICAqIEJ5IGRlZmF1bHQgZXZlcnl0aGluZyBpcyBjYWNoZWQgaW4gc3lzdGVtIHRtcCBkaXIuCiAgICAgKgogICAgICogSW1wb3J0YW50OiBjYWNoZSBiYXRjaCBzaXplIG1pZ2h0IHNpZ25pZmljYW50bHkgaW1wcm92ZSBwZXJmb3JtYW5jZSB3aGVuIHByb2Nlc3NpbmcgbGFyZ2UgYW1vdW50IG9mIHJvd3MuCiAgICAgKiBMYXJnZXIgYmF0Y2ggc2l6ZSB3aWxsIGluY3JlYXNlIG1lbW9yeSBjb25zdW1wdGlvbiBidXQgd2lsbCByZWR1Y2UgbnVtYmVyIG9mIElPIG9wZXJhdGlvbnMuCiAgICAgKiBXaGVuIG5vdCBzZXQsIHRoZSBiYXRjaCBzaXplIGlzIHRha2VuIGZyb20gdGhlIGxhc3QgRGF0YUZyYW1lOjpiYXRjaFNpemUoKSBjYWxsLgogICAgICoKICAgICAqIEBsYXp5CiAgICAgKgogICAgICogQHBhcmFtIG51bGx8c3RyaW5nICRpZAogICAgICogQHBhcmFtIG51bGx8Q2FjaGUgJGNhY2hlIHJlYWRzIG9mIHRoaXMgY2FjaGUgbXVzdCBwYXNzIHRoZSBzYW1lIGluc3RhbmNlIHRvIGZyb21fY2FjaGUoKQogICAgICoKICAgICAqIEB0aHJvd3MgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uCiAgICAgKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":168,"slug":"collect","name":"collect","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBCZWZvcmUgdHJhbnNmb3JtaW5nIHJvd3MsIGNvbGxlY3QgdGhlbSBhbmQgbWVyZ2UgaW50byBzaW5nbGUgUm93cyBpbnN0YW5jZS4KICAgICAqIFRoaXMgbWlnaHQgbGVhZCB0byBtZW1vcnkgaXNzdWVzIHdoZW4gcHJvY2Vzc2luZyBsYXJnZSBhbW91bnQgb2Ygcm93cywgdXNlIHdpdGggY2F1dGlvbi4KICAgICAqCiAgICAgKiBAbGF6eQogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":187,"slug":"collectrefs","name":"collectRefs","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"references","type":[{"name":"References","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBUaGlzIG1ldGhvZCBhbGxvd3MgdG8gY29sbGVjdCByZWZlcmVuY2VzIHRvIGFsbCBjb2x1bW5zIHVzZWQgaW4gdGhpcyBwaXBlbGluZS4KICAgICAqCiAgICAgKiBgYGBwaHAKICAgICAqIChuZXcgRmxvdygpKQogICAgICogICAtPnJlYWQoRnJvbTo6Y2hhaW4oKSkKICAgICAqICAgLT5jb2xsZWN0UmVmcygkcmVmcyA9IHJlZnMoKSkKICAgICAqICAgLT5ydW4oKTsKICAgICAqIGBgYAogICAgICoKICAgICAqIEBsYXp5CiAgICAgKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":194,"slug":"constrain","name":"constrain","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"constraint","type":[{"name":"Constraint","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"constraints","type":[{"name":"Constraint","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":205,"slug":"count","name":"count","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[],"return_type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAdHJpZ2dlcgogICAgICogUmV0dXJuIHRvdGFsIGNvdW50IG9mIHJvd3MgcHJvY2Vzc2VkIGJ5IHRoaXMgcGlwZWxpbmUuCiAgICAgKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":225,"slug":"crossjoin","name":"crossJoin","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"dataFrame","type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"prefix","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"''"}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAbGF6eQogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":242,"slug":"display","name":"display","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"limit","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"20"},{"name":"truncate","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"20"},{"name":"formatter","type":[{"name":"Formatter","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Formatter\\AsciiTableFormatter::..."}],"return_type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAcGFyYW0gaW50ICRsaW1pdCBtYXhpbXVtIG51bWJlcnMgb2Ygcm93cyB0byBkaXNwbGF5CiAgICAgKiBAcGFyYW0gYm9vbHxpbnQgJHRydW5jYXRlIGZhbHNlIG9yIGlmIHNldCB0byAwIGNvbHVtbnMgYXJlIG5vdCB0cnVuY2F0ZWQsIG90aGVyd2lzZSBkZWZhdWx0IHRydW5jYXRlIHRvIDIwCiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJhY3RlcnMKICAgICAqIEBwYXJhbSBGb3JtYXR0ZXIgJGZvcm1hdHRlcgogICAgICoKICAgICAqIEB0cmlnZ2VyCiAgICAgKgogICAgICogQHRocm93cyBJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24KICAgICAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":269,"slug":"drop","name":"drop","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"columns","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBEcm9wIGdpdmVuIGNvbHVtbnMuCiAgICAgKgogICAgICogQGxhenkKICAgICAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":283,"slug":"dropduplicates","name":"dropDuplicates","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"columns","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAcGFyYW0gUmVmZXJlbmNlfHN0cmluZyAuLi4kY29sdW1ucwogICAgICoKICAgICAqIEBsYXp5CiAgICAgKgogICAgICogQHJldHVybiAkdGhpcwogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":290,"slug":"duplicaterow","name":"duplicateRow","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"condition","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null},{"name":"columns","type":[{"name":"WithColumn","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":309,"slug":"fetch","name":"fetch","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"limit","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Rows","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBCZSBhd2FyZSB0aGF0IGZldGNoIGlzIG5vdCBtZW1vcnkgc2FmZSBhbmQgd2lsbCBsb2FkIGFsbCByb3dzIGludG8gbWVtb3J5LgogICAgICogSWYgeW91IHdhbnQgdG8gc2FmZWx5IGl0ZXJhdGUgb3ZlciBSb3dzIHVzZSBvZSBvZiB0aGUgZm9sbG93aW5nIG1ldGhvZHM6LgogICAgICoKICAgICAqIERhdGFGcmFtZTo6Z2V0KCkgOiBcR2VuZXJhdG9yCiAgICAgKiBEYXRhRnJhbWU6OmdldEFzQXJyYXkoKSA6IFxHZW5lcmF0b3IKICAgICAqIERhdGFGcmFtZTo6Z2V0RWFjaEFzQXJyYXkoKSA6IFxHZW5lcmF0b3IKICAgICAqCiAgICAgKiBAdHJpZ2dlcgogICAgICoKICAgICAqIEB0aHJvd3MgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uCiAgICAgKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":326,"slug":"filter","name":"filter","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"function","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAbGF6eQogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":338,"slug":"filters","name":"filters","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"functions","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAbGF6eQogICAgICoKICAgICAqIEBwYXJhbSBhcnJheTxTY2FsYXJGdW5jdGlvbj4gJGZ1bmN0aW9ucwogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":352,"slug":"foreach","name":"forEach","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"callback","type":[{"name":"callable","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"void","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAdHJpZ2dlcgogICAgICoKICAgICAqIEBwYXJhbSBudWxsfGNhbGxhYmxlKFJvd3MgJHJvd3MsIEZsb3dDb250ZXh0ICRjb250ZXh0KSA6IHZvaWQgJGNhbGxiYWNrCiAgICAgKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":373,"slug":"get","name":"get","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[],"return_type":[{"name":"Generator","namespace":"","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBZaWVsZHMgZWFjaCByb3cgYXMgYW4gaW5zdGFuY2Ugb2YgUm93cy4KICAgICAqCiAgICAgKiBAdHJpZ2dlcgogICAgICoKICAgICAqIEByZXR1cm4gXEdlbmVyYXRvcjxSb3dzPgogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":392,"slug":"getasarray","name":"getAsArray","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[],"return_type":[{"name":"Generator","namespace":"","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBZaWVsZHMgZWFjaCByb3cgYXMgYW4gYXJyYXkuCiAgICAgKgogICAgICogQHRyaWdnZXIKICAgICAqCiAgICAgKiBAcmV0dXJuIFxHZW5lcmF0b3I8YXJyYXk8YXJyYXk8bWl4ZWQ+Pj4KICAgICAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":411,"slug":"geteachasarray","name":"getEachAsArray","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[],"return_type":[{"name":"Generator","namespace":"","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBZaWVsZCBlYWNoIHJvdyBhcyBhbiBhcnJheS4KICAgICAqCiAgICAgKiBAdHJpZ2dlcgogICAgICoKICAgICAqIEByZXR1cm4gXEdlbmVyYXRvcjxhcnJheTxtaXhlZD4+CiAgICAgKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":432,"slug":"groupby","name":"groupBy","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"columns","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"algorithm","type":[{"name":"GroupByAlgorithmBuilder","namespace":"Flow\\ETL\\Config\\Grouping","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"GroupedDataFrame","namespace":"Flow\\ETL\\DataFrame","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAbGF6eQogICAgICoKICAgICAqIEBwYXJhbSBHcm91cEJ5UmVmZXJlbmNlc3xSZWZlcmVuY2V8c3RyaW5nICRjb2x1bW5zIGEgc2luZ2xlIGNvbHVtbiBpcyBncm91cGVkIGJ5IG9uIGl0cyBvd24KICAgICAqIEBwYXJhbSBudWxsfEdyb3VwQnlBbGdvcml0aG1CdWlsZGVyICRhbGdvcml0aG0gbnVsbCBkZWZlcnMgdG8gY29uZmlndXJhdGlvbjsgYSBidWlsZGVyIHBpbnMgdGhlCiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxnb3JpdGhtIGZvciB0aGlzIG9wZXJhdGlvbiBhbmQgc2tpcHMgYW55IGF1dG9tYXRpYyBjaG9pY2UKICAgICAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":451,"slug":"join","name":"join","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"dataFrame","type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"on","type":[{"name":"Expression","namespace":"Flow\\ETL\\Join","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"type","type":[{"name":"Join","namespace":"Flow\\ETL\\Join","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Join\\Join::..."},{"name":"algorithm","type":[{"name":"JoinAlgorithmBuilder","namespace":"Flow\\ETL\\Config\\Join","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAbGF6eQogICAgICoKICAgICAqIEBwYXJhbSBudWxsfEpvaW5BbGdvcml0aG1CdWlsZGVyICRhbGdvcml0aG0gbnVsbCBkZWZlcnMgdG8gY29uZmlndXJhdGlvbjsgYSBidWlsZGVyIHBpbnMgdGhlIGFsZ29yaXRobQogICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciB0aGlzIG9wZXJhdGlvbiBhbmQgc2tpcHMgYW55IGF1dG9tYXRpYyBjaG9pY2UKICAgICAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":479,"slug":"joineach","name":"joinEach","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"factory","type":[{"name":"DataFrameFactory","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"on","type":[{"name":"Expression","namespace":"Flow\\ETL\\Join","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"type","type":[{"name":"Join","namespace":"Flow\\ETL\\Join","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Join\\Join::..."}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBKb2lucyBpbiBtZW1vcnkgcGVyIGJhdGNoOyBpdCBpcyBub3QgZ292ZXJuZWQgYnkgdGhlIGpvaW4gYWxnb3JpdGhtIGFuZCB0YWtlcyBubyBhbGdvcml0aG0gb3ZlcnJpZGUuCiAgICAgKgogICAgICogQGxhenkKICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nfEpvaW4gJHR5cGUKICAgICAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":495,"slug":"limit","name":"limit","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"limit","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAbGF6eQogICAgICoKICAgICAqIEB0aHJvd3MgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uCiAgICAgKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":509,"slug":"load","name":"load","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"sink","type":[{"name":"Loader","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false},{"name":"Sink","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAbGF6eQogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":555,"slug":"match","name":"match","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"schema","type":[{"name":"Schema","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"validator","type":[{"name":"SchemaValidator","namespace":"Flow\\ETL","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAbGF6eQogICAgICoKICAgICAqIEBwYXJhbSBudWxsfFNjaGVtYVZhbGlkYXRvciAkdmFsaWRhdG9yIC0gd2hlbiBudWxsLCBTdHJpY3RWYWxpZGF0b3IgZ2V0cyBpbml0aWFsaXplZAogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":576,"slug":"offset","name":"offset","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"offset","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBTa2lwIGdpdmVuIG51bWJlciBvZiByb3dzIGZyb20gdGhlIGJlZ2lubmluZyBvZiB0aGUgZGF0YXNldC4KICAgICAqIFdoZW4gJG9mZnNldCBpcyBudWxsLCBub3RoaW5nIGhhcHBlbnMgKG5vIHJvd3MgYXJlIHNraXBwZWQpLgogICAgICoKICAgICAqIFBlcmZvcm1hbmNlIE5vdGU6IERhdGFGcmFtZSBtdXN0IGl0ZXJhdGUgdGhyb3VnaCBhbmQgcHJvY2VzcyBhbGwgc2tpcHBlZCByb3dzCiAgICAgKiB0byByZWFjaCB0aGUgb2Zmc2V0IHBvc2l0aW9uLiBGb3IgbGFyZ2Ugb2Zmc2V0cywgdGhpcyBjYW4gaW1wYWN0IHBlcmZvcm1hbmNlCiAgICAgKiBhcyB0aGUgZGF0YSBzb3VyY2Ugc3RpbGwgbmVlZHMgdG8gYmUgcmVhZCBhbmQgcHJvY2Vzc2VkIHVwIHRvIHRoZSBvZmZzZXQgcG9pbnQuCiAgICAgKgogICAgICogQHBhcmFtID9pbnQ8MCwgbWF4PiAkb2Zmc2V0CiAgICAgKgogICAgICogQGxhenkKICAgICAqCiAgICAgKiBAdGhyb3dzIEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbgogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":590,"slug":"onerror","name":"onError","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"handler","type":[{"name":"ErrorHandler","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAbGF6eQogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":602,"slug":"repartition","name":"repartition","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"column","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"columns","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAbGF6eQogICAgICogU2h1ZmZsZXMgdGhlIHN0cmVhbSBzbyBldmVyeSByb3cgc2hhcmluZyB0aGUgZ2l2ZW4gY29sdW1ucyBhcnJpdmVzIGluIG9uZSBiYXRjaC4gSXQgZG9lcyBub3QKICAgICAqIHdyaXRlIGRpcmVjdG9yaWVzIC0gdGhhdCBpcyBkZWNsYXJlZCBvbiB0aGUgbG9hZGVyLCBgdG9fY3N2KC4uLiktPnBhcnRpdGlvbkJ5KCdyZWdpb24nKWAuCiAgICAgKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":614,"slug":"printrows","name":"printRows","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"limit","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"20"},{"name":"truncate","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"20"},{"name":"formatter","type":[{"name":"Formatter","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Formatter\\AsciiTableFormatter::..."}],"return_type":[{"name":"void","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAdHJpZ2dlcgogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":634,"slug":"explain","name":"explain","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"trigger","type":[{"name":"Trigger","namespace":"Flow\\ETL\\Plan","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Plan\\Trigger::..."}],"return_type":[{"name":"Plan","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBUaGUgcGxhbiAkdHJpZ2dlciB3b3VsZCBydW4gb3ZlciB0aGlzIGZyYW1lLCBmcm96ZW46IGxhdGVyIHZlcmJzIG9uIHRoaXMgZnJhbWUgZG8gbm90IHJlYWNoIGl0LiBUaGUgZGVmYXVsdAogICAgICogYWRkcyBubyBjb25zdW1lciBvZiBpdHMgb3duIC0gaXQgZHJhd3MgdGhlIGZyYW1lIGFzIGJ1aWx0LCBpdHMgY2hhaW4gYW5kIGl0cyBzaW5rcy4gdG9TdHJpbmcoKSBwcmludHMgaXQgYXMgYQogICAgICogdHJlZS4gQW5zd2VycyBmcm9tIHRoZSBwbGFuIHdpdGhvdXQgcmVhZGluZyBhIHJvdy4KICAgICAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":644,"slug":"printschema","name":"printSchema","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"formatter","type":[{"name":"SchemaFormatter","namespace":"Flow\\ETL\\Schema","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Row\\Formatter\\ASCIISchemaFormatter::..."}],"return_type":[{"name":"void","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAbGF6eQogICAgICoKICAgICAqIEB0aHJvd3MgU2NoZW1hTm90RGVyaXZhYmxlRXhjZXB0aW9uCiAgICAgKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":652,"slug":"rename","name":"rename","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"from","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"to","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAbGF6eQogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":659,"slug":"renameeach","name":"renameEach","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"strategies","type":[{"name":"RenameColumnStrategy","namespace":"Flow\\ETL\\Transformer\\Rename","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":670,"slug":"rows","name":"rows","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"transformer","type":[{"name":"Transformer","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false},{"name":"Transformation","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAbGF6eQogICAgICogQWxpYXMgZm9yIEVUTDo6dHJhbnNmb3JtIG1ldGhvZC4KICAgICAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":687,"slug":"run","name":"run","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"analyze","type":[{"name":"Analyze","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"Report","namespace":"Flow\\ETL\\Dataset","is_nullable":true,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAdHJpZ2dlcgogICAgICoKICAgICAqIFdoZW4gYW5hbHl6aW5nIHBpcGVsaW5lIGV4ZWN1dGlvbiB3ZSBjYW4gY2hvc2UgdG8gY29sbGVjdCB2YXJpb3VzIG1ldHJpY3MgdGhyb3VnaCBhbmFseXplKCktPndpdGgqKCkgbWV0aG9kCiAgICAgKgogICAgICogLSBjb2x1bW4gc3RhdGlzdGljcyAtIGFuYWx5emUoKS0+d2l0aENvbHVtblN0YXRpc3RpY3MoKQogICAgICogLSBzY2hlbWEgLSBhbmFseXplKCktPndpdGhTY2hlbWEoKQogICAgICoKICAgICAqIEBwYXJhbSBBbmFseXplfGJvb2wgJGFuYWx5emUgLSB3aGVuIHNldCBydW4gd2lsbCByZXR1cm4gUmVwb3J0CiAgICAgKgogICAgICogQHJldHVybiAoJGFuYWx5emUgaXMgQW5hbHl6ZXx0cnVlID8gUmVwb3J0IDogbnVsbCkKICAgICAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":715,"slug":"schema","name":"schema","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[],"return_type":[{"name":"Schema","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAbGF6eQogICAgICoKICAgICAqIEB0aHJvd3MgU2NoZW1hTm90RGVyaXZhYmxlRXhjZXB0aW9uCiAgICAgKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":728,"slug":"select","name":"select","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"columns","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAbGF6eQogICAgICogS2VlcCBvbmx5IGdpdmVuIGNvbHVtbnMuCiAgICAgKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":742,"slug":"sortby","name":"sortBy","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"columns","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"algorithm","type":[{"name":"SortAlgorithmBuilder","namespace":"Flow\\ETL\\Config\\Sort","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAbGF6eQogICAgICoKICAgICAqIEBwYXJhbSBSZWZlcmVuY2V8U29ydFJlZmVyZW5jZXN8c3RyaW5nICRjb2x1bW5zIGEgc2luZ2xlIGNvbHVtbiBpcyBzb3J0ZWQgYnkgb24gaXRzIG93bgogICAgICogQHBhcmFtIG51bGx8U29ydEFsZ29yaXRobUJ1aWxkZXIgJGFsZ29yaXRobSBudWxsIGRlZmVycyB0byBjb25maWd1cmF0aW9uOyBhIGJ1aWxkZXIgcGlucyB0aGUgYWxnb3JpdGhtCiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIHRoaXMgb3BlcmF0aW9uIGFuZCBza2lwcyBhbnkgYXV0b21hdGljIGNob2ljZQogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":756,"slug":"transform","name":"transform","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"transformer","type":[{"name":"Transformer","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false},{"name":"Transformation","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false},{"name":"Transformations","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false},{"name":"WithColumn","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBBbGlhcyBmb3IgRGF0YUZyYW1lOjp3aXRoKCkuCiAgICAgKgogICAgICogQGxhenkKICAgICAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":767,"slug":"until","name":"until","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"function","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBUaGUgZGlmZmVyZW5jZSBiZXR3ZWVuIGZpbHRlciBhbmQgdW50aWwgaXMgdGhhdCBmaWx0ZXIgd2lsbCBrZWVwIGZpbHRlcmluZyByb3dzIHVudGlsIGV4dHJhY3RvcnMgZmluaXNoIHlpZWxkaW5nCiAgICAgKiByb3dzLiBVbnRpbCB3aWxsIHNlbmQgYSBTVE9QIHNpZ25hbCB0byB0aGUgRXh0cmFjdG9yIHdoZW4gdGhlIGNvbmRpdGlvbiBpcyBub3QgbWV0LgogICAgICoKICAgICAqIEBsYXp5CiAgICAgKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":781,"slug":"void","name":"void","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAbGF6eQogICAgICogVGhpcyBtZXRob2QgaXMgdXNlZnVsIG1vc3RseSBpbiBkZXZlbG9wbWVudCB3aGVuCiAgICAgKiB5b3Ugd2FudCB0byBwYXVzZSBwcm9jZXNzaW5nIGF0IGNlcnRhaW4gbW9tZW50IHdpdGhvdXQKICAgICAqIHJlbW92aW5nIGNvZGUuIEFsbCBvcGVyYXRpb25zIHdpbGwgZ2V0IHByb2Nlc3NlZCB1cCB0byB0aGlzIHBvaW50LAogICAgICogZnJvbSBoZXJlIG5vIHJvd3MgYXJlIHBhc3NlZCBmb3J3YXJkLgogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":791,"slug":"with","name":"with","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"transformer","type":[{"name":"Transformer","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false},{"name":"Transformation","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false},{"name":"Transformations","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false},{"name":"WithColumn","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAbGF6eQogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":819,"slug":"withcolumn","name":"withColumn","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"column","type":[{"name":"Definition","namespace":"Flow\\ETL\\Schema","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"reference","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"WindowFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAcGFyYW0gRGVmaW5pdGlvbjxtaXhlZD58c3RyaW5nICRjb2x1bW4KICAgICAqCiAgICAgKiBAbGF6eQogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":835,"slug":"withcolumns","name":"withColumns","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"references","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAbGF6eQogICAgICoKICAgICAqIEBwYXJhbSBhcnJheTxpbnQsIFdpdGhDb2x1bW4+fGFycmF5PHN0cmluZywgU2NhbGFyRnVuY3Rpb258V2luZG93RnVuY3Rpb258V2l0aENvbHVtbj4gJHJlZmVyZW5jZXMKICAgICAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":855,"slug":"withentries","name":"withEntries","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"references","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAZGVwcmVjYXRlZCBVc2Uge0BzZWUgRGF0YUZyYW1lOjp3aXRoQ29sdW1ucygpfSBpbnN0ZWFkLgogICAgICoKICAgICAqIEBsYXp5CiAgICAgKgogICAgICogQHBhcmFtIGFycmF5PGludCwgV2l0aENvbHVtbj58YXJyYXk8c3RyaW5nLCBTY2FsYXJGdW5jdGlvbnxXaW5kb3dGdW5jdGlvbnxXaXRoQ29sdW1uPiAkcmVmZXJlbmNlcwogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":867,"slug":"withentry","name":"withEntry","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"entry","type":[{"name":"Definition","namespace":"Flow\\ETL\\Schema","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"reference","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"WindowFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAZGVwcmVjYXRlZCBVc2Uge0BzZWUgRGF0YUZyYW1lOjp3aXRoQ29sdW1uKCl9IGluc3RlYWQuCiAgICAgKgogICAgICogQHBhcmFtIERlZmluaXRpb248bWl4ZWQ+fHN0cmluZyAkZW50cnkKICAgICAqCiAgICAgKiBAbGF6eQogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":876,"slug":"write","name":"write","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"sink","type":[{"name":"Loader","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false},{"name":"Sink","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAbGF6eQogICAgICogQWxpYXMgZm9yIEVUTDo6bG9hZCBmdW5jdGlvbi4KICAgICAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame\/GroupedDataFrame.php","start_line_in_file":21,"slug":"aggregate","name":"aggregate","class":"Flow\\ETL\\DataFrame\\GroupedDataFrame","class_slug":"groupeddataframe","parameters":[{"name":"aggregations","type":[{"name":"AggregatingFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"DataFrame","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame\/GroupedDataFrame.php","start_line_in_file":28,"slug":"pivot","name":"pivot","class":"Flow\\ETL\\DataFrame\\GroupedDataFrame","class_slug":"groupeddataframe","parameters":[{"name":"ref","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"values","type":[{"name":"PivotValues","namespace":"Flow\\ETL\\GroupBy","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":null}] \ No newline at end of file +[{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":31,"slug":"and","name":"and","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"function","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"All","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":36,"slug":"andnot","name":"andNot","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"function","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"All","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":41,"slug":"append","name":"append","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"suffix","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Append","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":54,"slug":"arrayfilter","name":"arrayFilter","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"value","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ArrayFilter","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBGaWx0ZXJzIGFuIGFycmF5IGJ5IHJlbW92aW5nIGFsbCBlbGVtZW50cyB0aGF0IG1hdGNoZXMgcGFzc2VkIHZhbHVlLgogICAgICogQXBwbGljYWJsZSB0byBhbGwgZGF0YSBzdHJ1Y3R1cmVzIHRoYXQgY2FuIGJlIGNvbnZlcnRlZCB0byBhbiBhcnJheToKICAgICAqICAgIC0ganNvbgogICAgICogICAgLSBsaXN0CiAgICAgKiAgICAtIG1hcAogICAgICogICAgLSBzdHJ1Y3R1cmUuCiAgICAgKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":59,"slug":"arrayget","name":"arrayGet","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"path","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ArrayGet","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":67,"slug":"arraygetcollection","name":"arrayGetCollection","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"keys","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ArrayGetCollection","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBAcGFyYW0gU2NhbGFyRnVuY3Rpb258YXJyYXk8YXJyYXkta2V5LCBtaXhlZD4gJGtleXMKICAgICAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":72,"slug":"arraygetcollectionfirst","name":"arrayGetCollectionFirst","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"keys","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"ArrayGetCollection","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":85,"slug":"arraykeep","name":"arrayKeep","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"value","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ArrayKeep","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBGaWx0ZXJzIGFuIGFycmF5IGJ5IGtlZXBpbmcgb25seSBlbGVtZW50cyB0aGF0IG1hdGNoZXMgcGFzc2VkIHZhbHVlLgogICAgICogQXBwbGljYWJsZSB0byBhbGwgZGF0YSBzdHJ1Y3R1cmVzIHRoYXQgY2FuIGJlIGNvbnZlcnRlZCB0byBhbiBhcnJheToKICAgICAqICAgLSBqc29uCiAgICAgKiAgIC0gbGlzdAogICAgICogICAtIG1hcAogICAgICogICAtIHN0cnVjdHVyZS4KICAgICAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":98,"slug":"arraykeys","name":"arrayKeys","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"ArrayKeys","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBSZXR1cm5zIGFsbCBrZXlzIGZyb20gYW4gYXJyYXksIGlnbm9yaW5nIHRoZSB2YWx1ZXMuCiAgICAgKiBBcHBsaWNhYmxlIHRvIGFsbCBkYXRhIHN0cnVjdHVyZXMgdGhhdCBjYW4gYmUgY29udmVydGVkIHRvIGFuIGFycmF5OgogICAgICogICAtIGpzb24KICAgICAqICAgLSBsaXN0CiAgICAgKiAgIC0gbWFwCiAgICAgKiAgIC0gc3RydWN0dXJlLgogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":106,"slug":"arraymerge","name":"arrayMerge","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"ref","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ArrayMerge","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBAcGFyYW0gU2NhbGFyRnVuY3Rpb258YXJyYXk8YXJyYXkta2V5LCBtaXhlZD4gJHJlZgogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":111,"slug":"arraymergecollection","name":"arrayMergeCollection","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"ArrayMergeCollection","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":116,"slug":"arraypathexists","name":"arrayPathExists","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"path","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ArrayPathExists","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":121,"slug":"arrayreverse","name":"arrayReverse","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"preserveKeys","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"ArrayReverse","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":126,"slug":"arraysort","name":"arraySort","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"sortFunction","type":[{"name":"Sort","namespace":"Flow\\ETL\\Function\\ArraySort","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"flags","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"recursive","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"}],"return_type":[{"name":"ArraySort","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":142,"slug":"arrayvalues","name":"arrayValues","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"ArrayValues","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBSZXR1cm5zIGFsbCB2YWx1ZXMgZnJvbSBhbiBhcnJheSwgaWdub3JpbmcgdGhlIGtleXMuCiAgICAgKiBBcHBsaWNhYmxlIHRvIGFsbCBkYXRhIHN0cnVjdHVyZXMgdGhhdCBjYW4gYmUgY29udmVydGVkIHRvIGFuIGFycmF5OgogICAgICogICAtIGpzb24KICAgICAqICAgLSBsaXN0CiAgICAgKiAgIC0gbWFwCiAgICAgKiAgIC0gc3RydWN0dXJlLgogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":147,"slug":"ascii","name":"ascii","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"Ascii","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":157,"slug":"between","name":"between","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"lowerBoundRef","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null},{"name":"upperBoundRef","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null},{"name":"boundary","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"Boundary","namespace":"Flow\\ETL\\Function\\Between","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Function\\Between\\Boundary::..."}],"return_type":[{"name":"Between","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBAcGFyYW0gbWl4ZWR8U2NhbGFyRnVuY3Rpb24gJGxvd2VyQm91bmRSZWYKICAgICAqIEBwYXJhbSBtaXhlZHxTY2FsYXJGdW5jdGlvbiAkdXBwZXJCb3VuZFJlZgogICAgICogQHBhcmFtIEJvdW5kYXJ5fFNjYWxhckZ1bmN0aW9uICRib3VuZGFyeQogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":165,"slug":"binarylength","name":"binaryLength","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"BinaryLength","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":174,"slug":"call","name":"call","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"callable","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"returnType","type":[{"name":"Type","namespace":"Flow\\Types","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"arguments","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"[]"},{"name":"refAlias","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"0"}],"return_type":[{"name":"CallUserFunc","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBAcGFyYW0gYXJyYXk8YXJyYXkta2V5LCBtaXhlZD4gJGFyZ3VtZW50cwogICAgICogQHBhcmFtIFR5cGU8bWl4ZWQ+ICRyZXR1cm5UeXBlCiAgICAgKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":183,"slug":"capitalize","name":"capitalize","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"Capitalize","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":191,"slug":"cast","name":"cast","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"type","type":[{"name":"Type","namespace":"Flow\\Types","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Cast","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBAcGFyYW0gc3RyaW5nfFR5cGU8bWl4ZWQ+ICR0eXBlCiAgICAgKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":196,"slug":"chunk","name":"chunk","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"size","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Chunk","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":201,"slug":"coalesce","name":"coalesce","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"params","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"Coalesce","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":206,"slug":"codepointlength","name":"codePointLength","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"CodePointLength","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":211,"slug":"collapsewhitespace","name":"collapseWhitespace","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"CollapseWhitespace","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":216,"slug":"concat","name":"concat","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"params","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"Concat","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":221,"slug":"concatwithseparator","name":"concatWithSeparator","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"separator","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"params","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"ConcatWithSeparator","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":228,"slug":"contains","name":"contains","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"needle","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Contains","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":233,"slug":"dateformat","name":"dateFormat","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"format","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'Y-m-d'"}],"return_type":[{"name":"DateTimeFormat","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":238,"slug":"datetimeformat","name":"dateTimeFormat","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"format","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'Y-m-d H:i:s'"}],"return_type":[{"name":"DateTimeFormat","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":243,"slug":"divide","name":"divide","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"value","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"scale","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"rounding","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"Rounding","namespace":"Flow\\Calculator","is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Divide","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":251,"slug":"domelementattributescount","name":"domElementAttributesCount","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"DOMElementAttributesCount","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":256,"slug":"domelementattributevalue","name":"domElementAttributeValue","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"attribute","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"DOMElementAttributeValue","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":261,"slug":"domelementnamespace","name":"domElementNamespace","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"attribute","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"DOMElementNamespaceValue","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":266,"slug":"domelementnextsibling","name":"domElementNextSibling","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"DOMElementNextSibling","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":271,"slug":"domelementparent","name":"domElementParent","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"DOMElementParent","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":276,"slug":"domelementprevioussibling","name":"domElementPreviousSibling","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"DOMElementPreviousSibling","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":281,"slug":"domelementvalue","name":"domElementValue","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"DOMElementValue","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":286,"slug":"endswith","name":"endsWith","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"needle","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"EndsWith","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":291,"slug":"ensureend","name":"ensureEnd","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"suffix","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"EnsureEnd","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":296,"slug":"ensurestart","name":"ensureStart","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"prefix","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"EnsureStart","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":301,"slug":"enumname","name":"enumName","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"EnumName","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":306,"slug":"enumvalue","name":"enumValue","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"EnumValue","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":311,"slug":"equals","name":"equals","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"ref","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Equals","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":316,"slug":"exists","name":"exists","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"Exists","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":345,"slug":"expand","name":"expand","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"expand","type":[{"name":"ArrayExpand","namespace":"Flow\\ETL\\Function\\ArrayExpand","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Function\\ArrayExpand\\ArrayExpand::..."}],"return_type":[{"name":"ArrayExpand","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBFeHBhbmRzIGVhY2ggdmFsdWUgaW50byBhIGNvbHVtbiwgaWYgdGhlcmUgYXJlIG1vcmUgdGhhbiBvbmUgdmFsdWUsIG11bHRpcGxlIHJvd3Mgd2lsbCBiZSBjcmVhdGVkLgogICAgICogQXJyYXkga2V5cyBhcmUgaWdub3JlZCwgb25seSB2YWx1ZXMgYXJlIHVzZWQgdG8gY3JlYXRlIG5ldyByb3dzLgogICAgICogTmVzdGVkIGluIGFub3RoZXIgZnVuY3Rpb24gKHN0cnVjdHVyZSgpLCBjb25jYXQoKSwgLi4uKSBpdCBzdGlsbCBnaXZlcyBvbmUgcm93IHBlciBlbGVtZW50LiBTZXZlcmFsCiAgICAgKiBleHBhbmRzIGluIG9uZSBleHByZXNzaW9uIGFyZSB6aXBwZWQgdG8gdGhlIGxvbmdlc3QgbGlzdDsgYSBzaG9ydGVyIG9uZSBnaXZlcyBudWxsLCBzbyBpdHMgZWxlbWVudAogICAgICogdHlwZSBiZWNvbWVzIG51bGxhYmxlLiBJdCBpcyByZWZ1c2VkIGluc2lkZSBhbm90aGVyIGFycmF5X2V4cGFuZCgpIGFuZCBpbiBmaWx0ZXIoKSwgdW50aWwoKSwKICAgICAqIGR1cGxpY2F0ZVJvdygpLCBhZ2dyZWdhdGUoKSwgb3ZlcigpIGFuZCBvbkVhY2goKS4KICAgICAqCiAgICAgKiBCZWZvcmU6CiAgICAgKiAgICstLSstLS0tLS0tLS0tLS0tLS0tLS0tKwogICAgICogICB8aWR8ICAgICAgICAgICAgICBhcnJheXwKICAgICAqICAgKy0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rCiAgICAgKiAgIHwgMXx7ImEiOjEsImIiOjIsImMiOjN9fAogICAgICogICArLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSsKICAgICAqCiAgICAgKiBBZnRlcjoKICAgICAqICAgKy0tKy0tLS0tLS0tKwogICAgICogICB8aWR8ZXhwYW5kZWR8CiAgICAgKiAgICstLSstLS0tLS0tLSsKICAgICAqICAgfCAxfCAgICAgICAxfAogICAgICogICB8IDF8ICAgICAgIDJ8CiAgICAgKiAgIHwgMXwgICAgICAgM3wKICAgICAqICAgKy0tKy0tLS0tLS0tKwogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":350,"slug":"greaterthan","name":"greaterThan","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"ref","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null}],"return_type":[{"name":"GreaterThan","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":355,"slug":"greaterthanequal","name":"greaterThanEqual","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"ref","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null}],"return_type":[{"name":"GreaterThanEqual","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":360,"slug":"hash","name":"hash","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"algorithm","type":[{"name":"Algorithm","namespace":"Flow\\ETL\\Hash","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Hash\\NativePHPHash::..."}],"return_type":[{"name":"Hash","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":365,"slug":"htmlqueryselector","name":"htmlQuerySelector","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"path","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"HTMLQuerySelector","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":370,"slug":"htmlqueryselectorall","name":"htmlQuerySelectorAll","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"path","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"HTMLQuerySelectorAll","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":378,"slug":"indexof","name":"indexOf","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"needle","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"ignoreCase","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"offset","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"0"}],"return_type":[{"name":"IndexOf","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBSZXR1cm5zIHRoZSBpbmRleCBvZiBnaXZlbiAkbmVlZGxlIGluIHN0cmluZy4KICAgICAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":389,"slug":"indexoflast","name":"indexOfLast","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"needle","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"ignoreCase","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"},{"name":"offset","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"0"}],"return_type":[{"name":"IndexOfLast","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBSZXR1cm5zIHRoZSBsYXN0IGluZGV4IG9mIGdpdmVuICRuZWVkbGUgaW4gc3RyaW5nLgogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":397,"slug":"isempty","name":"isEmpty","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"IsEmpty","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":402,"slug":"iseven","name":"isEven","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"Equals","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":407,"slug":"isfalse","name":"isFalse","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"Same","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":415,"slug":"isin","name":"isIn","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"haystack","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"IsIn","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBAcGFyYW0gU2NhbGFyRnVuY3Rpb258YXJyYXk8YXJyYXkta2V5LCBtaXhlZD4gJGhheXN0YWNrCiAgICAgKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":420,"slug":"isnotnull","name":"isNotNull","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"IsNotNull","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":425,"slug":"isnotnumeric","name":"isNotNumeric","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"IsNotNumeric","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":430,"slug":"isnull","name":"isNull","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"IsNull","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":435,"slug":"isnumeric","name":"isNumeric","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"IsNumeric","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":440,"slug":"isodd","name":"isOdd","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"NotEquals","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":445,"slug":"istrue","name":"isTrue","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"Same","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":453,"slug":"istype","name":"isType","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"types","type":[{"name":"Type","namespace":"Flow\\Types","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"IsType","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBAcGFyYW0gc3RyaW5nfFR5cGU8bWl4ZWQ+ICR0eXBlcwogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":465,"slug":"isutf8","name":"isUtf8","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"IsUtf8","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBDaGVjayBzdHJpbmcgaXMgdXRmOCBhbmQgcmV0dXJucyB0cnVlIG9yIGZhbHNlLgogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":470,"slug":"jsondecode","name":"jsonDecode","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"flags","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"4194304"}],"return_type":[{"name":"JsonDecode","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":475,"slug":"jsonencode","name":"jsonEncode","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"flags","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"4194304"}],"return_type":[{"name":"JsonEncode","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":480,"slug":"lessthan","name":"lessThan","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"ref","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null}],"return_type":[{"name":"LessThan","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":485,"slug":"lessthanequal","name":"lessThanEqual","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"ref","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"LessThanEqual","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":490,"slug":"literal","name":"literal","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"value","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Literal","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":495,"slug":"lower","name":"lower","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"ToLower","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":500,"slug":"minus","name":"minus","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"ref","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"exact","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"Minus","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":505,"slug":"mod","name":"mod","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"value","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Mod","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":510,"slug":"modifydatetime","name":"modifyDateTime","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"modifier","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ModifyDateTime","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":515,"slug":"multiply","name":"multiply","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"value","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"exact","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"Multiply","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":520,"slug":"notequals","name":"notEquals","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"value","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null}],"return_type":[{"name":"NotEquals","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":525,"slug":"notsame","name":"notSame","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"value","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null}],"return_type":[{"name":"NotSame","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":530,"slug":"numberformat","name":"numberFormat","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"decimals","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"2"},{"name":"decimalSeparator","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'.'"},{"name":"thousandsSeparator","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"','"}],"return_type":[{"name":"NumberFormat","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":544,"slug":"oneach","name":"onEach","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"function","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"preserveKeys","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"true"}],"return_type":[{"name":"OnEach","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBFeGVjdXRlIGEgc2NhbGFyIGZ1bmN0aW9uIG9uIGVhY2ggZWxlbWVudCBvZiBhbiBhcnJheS9saXN0L21hcC9zdHJ1Y3R1cmUgY29sdW1uLgogICAgICogSW4gb3JkZXIgdG8gdXNlIHRoaXMgZnVuY3Rpb24sIHlvdSBuZWVkIHRvIHByb3ZpZGUgYSByZWZlcmVuY2UgdG8gdGhlICJlbGVtZW50IiB0aGF0IHdpbGwgYmUgdXNlZCBpbiB0aGUgZnVuY3Rpb24uCiAgICAgKgogICAgICogRXhhbXBsZTogJGRmLT53aXRoQ29sdW1uKCdhcnJheScsIHJlZignYXJyYXknKS0+b25FYWNoKHJlZignZWxlbWVudCcpLT5jYXN0KHR5cGVfc3RyaW5nKCkpKSkKICAgICAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":549,"slug":"or","name":"or","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"function","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Any","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":554,"slug":"ornot","name":"orNot","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"function","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Any","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":559,"slug":"plus","name":"plus","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"ref","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"exact","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"Plus","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":564,"slug":"power","name":"power","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"value","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"exact","type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"Power","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":569,"slug":"prepend","name":"prepend","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"prefix","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Prepend","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":574,"slug":"regex","name":"regex","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"pattern","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"flags","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"0"},{"name":"offset","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"0"}],"return_type":[{"name":"Regex","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":579,"slug":"regexall","name":"regexAll","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"pattern","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"flags","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"0"},{"name":"offset","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"0"}],"return_type":[{"name":"RegexAll","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":584,"slug":"regexmatch","name":"regexMatch","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"pattern","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"flags","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"0"},{"name":"offset","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"0"}],"return_type":[{"name":"RegexMatch","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":592,"slug":"regexmatchall","name":"regexMatchAll","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"pattern","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"flags","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"0"},{"name":"offset","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"0"}],"return_type":[{"name":"RegexMatchAll","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":600,"slug":"regexreplace","name":"regexReplace","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"pattern","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"replacement","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"limit","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"RegexReplace","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":608,"slug":"repeat","name":"repeat","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"times","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Repeat","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":613,"slug":"reverse","name":"reverse","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"Reverse","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":618,"slug":"round","name":"round","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"precision","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"2"},{"name":"mode","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"1"}],"return_type":[{"name":"Round","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":623,"slug":"same","name":"same","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"value","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null}],"return_type":[{"name":"Same","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":628,"slug":"sanitize","name":"sanitize","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"placeholder","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'*'"},{"name":"skipCharacters","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Sanitize","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":635,"slug":"size","name":"size","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"Size","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":643,"slug":"slug","name":"slug","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"separator","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'-'"},{"name":"locale","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"symbolsMap","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Slug","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBAcGFyYW0gU2NhbGFyRnVuY3Rpb258bnVsbHxhcnJheTxhcnJheS1rZXksIG1peGVkPiAkc3ltYm9sc01hcAogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":651,"slug":"split","name":"split","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"separator","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"limit","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"9223372036854775807"}],"return_type":[{"name":"Split","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":656,"slug":"sprintf","name":"sprintf","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"params","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"float","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"null","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":true,"default_value":null}],"return_type":[{"name":"Sprintf","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":661,"slug":"startswith","name":"startsWith","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"needle","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"StartsWith","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":669,"slug":"stringafter","name":"stringAfter","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"needle","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"includeNeedle","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"StringAfter","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBSZXR1cm5zIHRoZSBjb250ZW50cyBmb3VuZCBhZnRlciB0aGUgZmlyc3Qgb2NjdXJyZW5jZSBvZiB0aGUgZ2l2ZW4gc3RyaW5nLgogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":677,"slug":"stringafterlast","name":"stringAfterLast","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"needle","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"includeNeedle","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"StringAfterLast","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBSZXR1cm5zIHRoZSBjb250ZW50cyBmb3VuZCBhZnRlciB0aGUgbGFzdCBvY2N1cnJlbmNlIG9mIHRoZSBnaXZlbiBzdHJpbmcuCiAgICAgKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":687,"slug":"stringbefore","name":"stringBefore","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"needle","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"includeNeedle","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"StringBefore","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBSZXR1cm5zIHRoZSBjb250ZW50cyBmb3VuZCBiZWZvcmUgdGhlIGZpcnN0IG9jY3VycmVuY2Ugb2YgdGhlIGdpdmVuIHN0cmluZy4KICAgICAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":697,"slug":"stringbeforelast","name":"stringBeforeLast","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"needle","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"includeNeedle","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"StringBeforeLast","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBSZXR1cm5zIHRoZSBjb250ZW50cyBmb3VuZCBiZWZvcmUgdGhlIGxhc3Qgb2NjdXJyZW5jZSBvZiB0aGUgZ2l2ZW4gc3RyaW5nLgogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":707,"slug":"stringcontainsany","name":"stringContainsAny","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"needles","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"StringContainsAny","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBAcGFyYW0gYXJyYXk8c3RyaW5nPnxTY2FsYXJGdW5jdGlvbiAkbmVlZGxlcwogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":712,"slug":"stringequalsto","name":"stringEqualsTo","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"string","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"StringEqualsTo","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":720,"slug":"stringfold","name":"stringFold","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"StringFold","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBSZXR1cm5zIGEgc3RyaW5nIHRoYXQgeW91IGNhbiB1c2UgaW4gY2FzZS1pbnNlbnNpdGl2ZSBjb21wYXJpc29ucy4KICAgICAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":725,"slug":"stringmatch","name":"stringMatch","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"pattern","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"StringMatch","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":730,"slug":"stringmatchall","name":"stringMatchAll","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"pattern","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"StringMatchAll","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":735,"slug":"stringnormalize","name":"stringNormalize","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"form","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"16"}],"return_type":[{"name":"StringNormalize","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":744,"slug":"stringstyle","name":"stringStyle","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"style","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"StringStyles","namespace":"Flow\\ETL\\String","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"StringStyle","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBDb3ZlcnQgc3RyaW5nIHRvIGEgc3R5bGUgZnJvbSBlbnVtIGxpc3QsIHBhc3NlZCBpbiBwYXJhbWV0ZXIuCiAgICAgKiBDYW4gYmUgc3RyaW5nICJ1cHBlciIgb3IgU3RyaW5nU3R5bGVzOjpVUFBFUiBmb3IgVXBwZXIgKGV4YW1wbGUpLgogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":752,"slug":"stringtitle","name":"stringTitle","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"allWords","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"StringTitle","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBDaGFuZ2VzIGFsbCBncmFwaGVtZXMvY29kZSBwb2ludHMgdG8gInRpdGxlIGNhc2UiLgogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":757,"slug":"stringwidth","name":"stringWidth","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"StringWidth","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":762,"slug":"strpad","name":"strPad","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"length","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"pad_string","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"' '"},{"name":"type","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"1"}],"return_type":[{"name":"StrPad","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":767,"slug":"strpadboth","name":"strPadBoth","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"length","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"pad_string","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"' '"}],"return_type":[{"name":"StrPad","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":772,"slug":"strpadleft","name":"strPadLeft","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"length","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"pad_string","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"' '"}],"return_type":[{"name":"StrPad","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":777,"slug":"strpadright","name":"strPadRight","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"length","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"pad_string","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"' '"}],"return_type":[{"name":"StrPad","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":786,"slug":"strreplace","name":"strReplace","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"search","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"replace","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"StrReplace","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBAcGFyYW0gYXJyYXk8c3RyaW5nPnxTY2FsYXJGdW5jdGlvbnxzdHJpbmcgJHNlYXJjaAogICAgICogQHBhcmFtIGFycmF5PHN0cmluZz58U2NhbGFyRnVuY3Rpb258c3RyaW5nICRyZXBsYWNlCiAgICAgKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":794,"slug":"todate","name":"toDate","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"format","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'Y-m-d\\\\TH:i:sP'"},{"name":"timeZone","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"DateTimeZone","namespace":"","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"DateTimeZone::..."}],"return_type":[{"name":"ToDate","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBAcGFyYW0gU2NhbGFyRnVuY3Rpb258c3RyaW5nICRmb3JtYXQgLSBjdXJyZW50IGZvcm1hdCBvZiB0aGUgZGF0ZSB0aGF0IHdpbGwgYmUgdXNlZCB0byBjcmVhdGUgRGF0ZVRpbWVJbW11dGFibGUgaW5zdGFuY2UKICAgICAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":805,"slug":"todatetime","name":"toDateTime","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"format","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'Y-m-d H:i:s'"},{"name":"timeZone","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"DateTimeZone","namespace":"","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"DateTimeZone::..."}],"return_type":[{"name":"ToDateTime","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBAcGFyYW0gU2NhbGFyRnVuY3Rpb258c3RyaW5nICRmb3JtYXQgLSBjdXJyZW50IGZvcm1hdCBvZiB0aGUgZGF0ZSB0aGF0IHdpbGwgYmUgdXNlZCB0byBjcmVhdGUgRGF0ZVRpbWVJbW11dGFibGUgaW5zdGFuY2UKICAgICAqIEBwYXJhbSBcRGF0ZVRpbWVab25lfFNjYWxhckZ1bmN0aW9uICR0aW1lWm9uZQogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":812,"slug":"trim","name":"trim","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"type","type":[{"name":"Type","namespace":"Flow\\ETL\\Function\\Trim","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Function\\Trim\\Type::..."},{"name":"characters","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"' \\t\\n\\r\\0\u000b'"}],"return_type":[{"name":"Trim","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":817,"slug":"truncate","name":"truncate","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"length","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"ellipsis","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'...'"}],"return_type":[{"name":"Truncate","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":822,"slug":"unicodelength","name":"unicodeLength","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"UnicodeLength","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":846,"slug":"unpack","name":"unpack","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"schema","type":[{"name":"Schema","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"ArrayUnpack","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":"LyoqCiAgICAgKiBVbnBhY2tzIGVhY2ggZWxlbWVudCBvZiBhbiBhcnJheSBpbnRvIGEgbmV3IGNvbHVtbiwgdXNpbmcgdGhlIGFycmF5IGtleSBhcyB0aGUgY29sdW1uIG5hbWUuCiAgICAgKgogICAgICogQmVmb3JlOgogICAgICogICArLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSsKICAgICAqICAgfGlkfCAgICAgICAgICAgICAgYXJyYXl8CiAgICAgKiAgICstLSstLS0tLS0tLS0tLS0tLS0tLS0tKwogICAgICogICB8IDF8eyJhIjoxLCJiIjoyLCJjIjozfXwKICAgICAqICAgfCAyfHsiZCI6NCwiZSI6NSwiZiI6Nn18CiAgICAgKiAgICstLSstLS0tLS0tLS0tLS0tLS0tLS0tKwogICAgICoKICAgICAqIEFmdGVyOgogICAgICogICArLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rCiAgICAgKiAgIHxpZHxhcnIuYnxhcnIuY3xhcnIuZHxhcnIuZXxhcnIuZnwKICAgICAqICAgKy0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKwogICAgICogICB8IDF8ICAgIDJ8ICAgIDN8ICAgICB8ICAgICB8ICAgICB8CiAgICAgKiAgIHwgMnwgICAgIHwgICAgIHwgICAgNHwgICAgNXwgICAgNnwKICAgICAqICAgKy0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKwogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":851,"slug":"upper","name":"upper","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"ToUpper","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":856,"slug":"wordwrap","name":"wordwrap","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"width","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"break","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"'\\n'"},{"name":"cut","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"Wordwrap","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ScalarFunctionChain.php","start_line_in_file":864,"slug":"xpath","name":"xpath","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[{"name":"string","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"XPath","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":true,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ResolvesFromChildren.php","start_line_in_file":12,"slug":"resolved","name":"resolved","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Function\/ResolvesFromChildren.php","start_line_in_file":23,"slug":"deterministic","name":"deterministic","class":"Flow\\ETL\\Function\\ScalarFunctionChain","class_slug":"scalarfunctionchain","parameters":[],"return_type":[{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Flow.php","start_line_in_file":23,"slug":"setup","name":"setUp","class":"Flow\\ETL\\Flow","class_slug":"flow","parameters":[{"name":"config","type":[{"name":"ConfigBuilder","namespace":"Flow\\ETL\\Config","is_nullable":false,"is_variadic":false},{"name":"Config","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Flow.php","start_line_in_file":28,"slug":"extract","name":"extract","class":"Flow\\ETL\\Flow","class_slug":"flow","parameters":[{"name":"extractor","type":[{"name":"Extractor","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"DataFrame","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Flow.php","start_line_in_file":33,"slug":"from","name":"from","class":"Flow\\ETL\\Flow","class_slug":"flow","parameters":[{"name":"extractor","type":[{"name":"Extractor","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"DataFrame","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Flow.php","start_line_in_file":38,"slug":"process","name":"process","class":"Flow\\ETL\\Flow","class_slug":"flow","parameters":[{"name":"rows","type":[{"name":"Rows","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"DataFrame","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/Flow.php","start_line_in_file":46,"slug":"read","name":"read","class":"Flow\\ETL\\Flow","class_slug":"flow","parameters":[{"name":"extractor","type":[{"name":"Extractor","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"DataFrame","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBBbGlhcyBmb3IgRmxvdzo6ZXh0cmFjdCBmdW5jdGlvbi4KICAgICAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":75,"slug":"aggregate","name":"aggregate","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"aggregations","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"algorithm","type":[{"name":"GroupByAlgorithmBuilder","namespace":"Flow\\ETL\\Config\\Grouping","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAbGF6eQogICAgICoKICAgICAqIEBwYXJhbSBBZ2dyZWdhdGlvbnMgJGFnZ3JlZ2F0aW9ucwogICAgICogQHBhcmFtIG51bGx8R3JvdXBCeUFsZ29yaXRobUJ1aWxkZXIgJGFsZ29yaXRobSBudWxsIGRlZmVycyB0byBjb25maWd1cmF0aW9uOyBhIGJ1aWxkZXIgcGlucyB0aGUKICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGdvcml0aG0gZm9yIHRoaXMgb3BlcmF0aW9uIGFuZCBza2lwcyBhbnkgYXV0b21hdGljIGNob2ljZQogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":99,"slug":"batchby","name":"batchBy","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"column","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"minSize","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBNZXJnZS9TcGxpdCBSb3dzIHlpZWxkZWQgYnkgRXh0cmFjdG9yIGludG8gYmF0Y2hlcyBidXQga2VlcCB0aG9zZSB3aXRoIGNvbW1vbiB2YWx1ZSBpbiBnaXZlbiBjb2x1bW4gdG9nZXRoZXIuCiAgICAgKiBUaGlzIHdvcmtzIHByb3Blcmx5IG9ubHkgb24gc29ydGVkIGRhdGFzZXRzLgogICAgICoKICAgICAqIFdoZW4gbWluU2l6ZSBpcyBub3QgcHJvdmlkZWQsIGJhdGNoZXMgd2lsbCBiZSBjcmVhdGVkIG9ubHkgd2hlbiB0aGVyZSBpcyBhIGNoYW5nZSBpbiB2YWx1ZSBvZiB0aGUgY29sdW1uLgogICAgICogV2hlbiBtaW5TaXplIGlzIHByb3ZpZGVkLCBiYXRjaGVzIHdpbGwgYmUgY3JlYXRlZCBvbmx5IHdoZW4gdGhlcmUgaXMgYSBjaGFuZ2UgaW4gdmFsdWUgb2YgdGhlIGNvbHVtbiBvcgogICAgICogd2hlbiB0aGVyZSBhcmUgYXQgbGVhc3QgbWluU2l6ZSByb3dzIGluIHRoZSBiYXRjaC4KICAgICAqCiAgICAgKiBAcGFyYW0gUmVmZXJlbmNlfHN0cmluZyAkY29sdW1uIC0gY29sdW1uIHRvIGdyb3VwIGJ5IChhbGwgcm93cyB3aXRoIHNhbWUgdmFsdWUgc3RheSB0b2dldGhlcikKICAgICAqIEBwYXJhbSBudWxsfGludDwxLCBtYXg+ICRtaW5TaXplIC0gb3B0aW9uYWwgbWluaW11bSByb3dzIHBlciBiYXRjaCBmb3IgZWZmaWNpZW5jeQogICAgICoKICAgICAqIEBsYXp5CiAgICAgKgogICAgICogQHRocm93cyBJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24KICAgICAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":119,"slug":"batchsize","name":"batchSize","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"size","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBNZXJnZS9TcGxpdCBSb3dzIHlpZWxkZWQgYnkgRXh0cmFjdG9yIGludG8gYmF0Y2hlcyBvZiBnaXZlbiBzaXplLgogICAgICogRm9yIGV4YW1wbGUsIHdoZW4gRXh0cmFjdG9yIGlzIHlpZWxkaW5nIG9uZSByb3cgYXQgdGltZSwgdGhpcyBtZXRob2Qgd2lsbCBtZXJnZSB0aGVtIGludG8gYmF0Y2hlcyBvZiBnaXZlbiBzaXplCiAgICAgKiBiZWZvcmUgcGFzc2luZyB0aGVtIHRvIHRoZSBuZXh0IHBpcGVsaW5lIGVsZW1lbnQuCiAgICAgKiBTaW1pbGFybHkgd2hlbiBFeHRyYWN0b3IgaXMgeWllbGRpbmcgYmF0Y2hlcyBvZiByb3dzLCB0aGlzIG1ldGhvZCB3aWxsIHNwbGl0IHRoZW0gaW50byBzbWFsbGVyIGJhdGNoZXMgb2YgZ2l2ZW4KICAgICAqIHNpemUuCiAgICAgKgogICAgICogSW4gb3JkZXIgdG8gbWVyZ2UgYWxsIFJvd3MgaW50byBhIHNpbmdsZSBiYXRjaCB1c2UgRGF0YUZyYW1lOjpjb2xsZWN0KCkgbWV0aG9kIG9yIHNldCBzaXplIHRvIC0xIG9yIDAuCiAgICAgKgogICAgICogQHBhcmFtIGludDwtMSwgbWF4PiAkc2l6ZQogICAgICoKICAgICAqIEBsYXp5CiAgICAgKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":151,"slug":"cache","name":"cache","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"id","type":[{"name":"string","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"cacheBatchSize","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"},{"name":"cache","type":[{"name":"Cache","namespace":"Flow\\ETL","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBTdGFydCBwcm9jZXNzaW5nIHJvd3MgdXAgdG8gdGhpcyBtb21lbnQgYW5kIHB1dCBlYWNoIGluc3RhbmNlIG9mIFJvd3MKICAgICAqIGludG8gcHJldmlvdXNseSBkZWZpbmVkIGNhY2hlLgogICAgICogQ2FjaGUgdHlwZSBjYW4gYmUgc2V0IHRocm91Z2ggQ29uZmlnQnVpbGRlci4KICAgICAqIEJ5IGRlZmF1bHQgZXZlcnl0aGluZyBpcyBjYWNoZWQgaW4gc3lzdGVtIHRtcCBkaXIuCiAgICAgKgogICAgICogSW1wb3J0YW50OiBjYWNoZSBiYXRjaCBzaXplIG1pZ2h0IHNpZ25pZmljYW50bHkgaW1wcm92ZSBwZXJmb3JtYW5jZSB3aGVuIHByb2Nlc3NpbmcgbGFyZ2UgYW1vdW50IG9mIHJvd3MuCiAgICAgKiBMYXJnZXIgYmF0Y2ggc2l6ZSB3aWxsIGluY3JlYXNlIG1lbW9yeSBjb25zdW1wdGlvbiBidXQgd2lsbCByZWR1Y2UgbnVtYmVyIG9mIElPIG9wZXJhdGlvbnMuCiAgICAgKiBXaGVuIG5vdCBzZXQsIHRoZSBiYXRjaCBzaXplIGlzIHRha2VuIGZyb20gdGhlIGxhc3QgRGF0YUZyYW1lOjpiYXRjaFNpemUoKSBjYWxsLgogICAgICoKICAgICAqIEBsYXp5CiAgICAgKgogICAgICogQHBhcmFtIG51bGx8c3RyaW5nICRpZAogICAgICogQHBhcmFtIG51bGx8Q2FjaGUgJGNhY2hlIHJlYWRzIG9mIHRoaXMgY2FjaGUgbXVzdCBwYXNzIHRoZSBzYW1lIGluc3RhbmNlIHRvIGZyb21fY2FjaGUoKQogICAgICoKICAgICAqIEB0aHJvd3MgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uCiAgICAgKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":168,"slug":"collect","name":"collect","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBCZWZvcmUgdHJhbnNmb3JtaW5nIHJvd3MsIGNvbGxlY3QgdGhlbSBhbmQgbWVyZ2UgaW50byBzaW5nbGUgUm93cyBpbnN0YW5jZS4KICAgICAqIFRoaXMgbWlnaHQgbGVhZCB0byBtZW1vcnkgaXNzdWVzIHdoZW4gcHJvY2Vzc2luZyBsYXJnZSBhbW91bnQgb2Ygcm93cywgdXNlIHdpdGggY2F1dGlvbi4KICAgICAqCiAgICAgKiBAbGF6eQogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":187,"slug":"collectrefs","name":"collectRefs","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"references","type":[{"name":"References","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBUaGlzIG1ldGhvZCBhbGxvd3MgdG8gY29sbGVjdCByZWZlcmVuY2VzIHRvIGFsbCBjb2x1bW5zIHVzZWQgaW4gdGhpcyBwaXBlbGluZS4KICAgICAqCiAgICAgKiBgYGBwaHAKICAgICAqIChuZXcgRmxvdygpKQogICAgICogICAtPnJlYWQoRnJvbTo6Y2hhaW4oKSkKICAgICAqICAgLT5jb2xsZWN0UmVmcygkcmVmcyA9IHJlZnMoKSkKICAgICAqICAgLT5ydW4oKTsKICAgICAqIGBgYAogICAgICoKICAgICAqIEBsYXp5CiAgICAgKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":194,"slug":"constrain","name":"constrain","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"constraint","type":[{"name":"Constraint","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"constraints","type":[{"name":"Constraint","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":205,"slug":"count","name":"count","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[],"return_type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAdHJpZ2dlcgogICAgICogUmV0dXJuIHRvdGFsIGNvdW50IG9mIHJvd3MgcHJvY2Vzc2VkIGJ5IHRoaXMgcGlwZWxpbmUuCiAgICAgKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":225,"slug":"crossjoin","name":"crossJoin","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"dataFrame","type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"prefix","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"''"}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAbGF6eQogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":242,"slug":"display","name":"display","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"limit","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"20"},{"name":"truncate","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"20"},{"name":"formatter","type":[{"name":"Formatter","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Formatter\\AsciiTableFormatter::..."}],"return_type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAcGFyYW0gaW50ICRsaW1pdCBtYXhpbXVtIG51bWJlcnMgb2Ygcm93cyB0byBkaXNwbGF5CiAgICAgKiBAcGFyYW0gYm9vbHxpbnQgJHRydW5jYXRlIGZhbHNlIG9yIGlmIHNldCB0byAwIGNvbHVtbnMgYXJlIG5vdCB0cnVuY2F0ZWQsIG90aGVyd2lzZSBkZWZhdWx0IHRydW5jYXRlIHRvIDIwCiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJhY3RlcnMKICAgICAqIEBwYXJhbSBGb3JtYXR0ZXIgJGZvcm1hdHRlcgogICAgICoKICAgICAqIEB0cmlnZ2VyCiAgICAgKgogICAgICogQHRocm93cyBJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24KICAgICAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":269,"slug":"drop","name":"drop","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"columns","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBEcm9wIGdpdmVuIGNvbHVtbnMuCiAgICAgKgogICAgICogQGxhenkKICAgICAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":283,"slug":"dropduplicates","name":"dropDuplicates","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"columns","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAcGFyYW0gUmVmZXJlbmNlfHN0cmluZyAuLi4kY29sdW1ucwogICAgICoKICAgICAqIEBsYXp5CiAgICAgKgogICAgICogQHJldHVybiAkdGhpcwogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":290,"slug":"duplicaterow","name":"duplicateRow","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"condition","type":[{"name":"mixed","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null},{"name":"columns","type":[{"name":"WithColumn","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":309,"slug":"fetch","name":"fetch","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"limit","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"Rows","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBCZSBhd2FyZSB0aGF0IGZldGNoIGlzIG5vdCBtZW1vcnkgc2FmZSBhbmQgd2lsbCBsb2FkIGFsbCByb3dzIGludG8gbWVtb3J5LgogICAgICogSWYgeW91IHdhbnQgdG8gc2FmZWx5IGl0ZXJhdGUgb3ZlciBSb3dzIHVzZSBvZSBvZiB0aGUgZm9sbG93aW5nIG1ldGhvZHM6LgogICAgICoKICAgICAqIERhdGFGcmFtZTo6Z2V0KCkgOiBcR2VuZXJhdG9yCiAgICAgKiBEYXRhRnJhbWU6OmdldEFzQXJyYXkoKSA6IFxHZW5lcmF0b3IKICAgICAqIERhdGFGcmFtZTo6Z2V0RWFjaEFzQXJyYXkoKSA6IFxHZW5lcmF0b3IKICAgICAqCiAgICAgKiBAdHJpZ2dlcgogICAgICoKICAgICAqIEB0aHJvd3MgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uCiAgICAgKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":326,"slug":"filter","name":"filter","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"function","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAbGF6eQogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":338,"slug":"filters","name":"filters","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"functions","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAbGF6eQogICAgICoKICAgICAqIEBwYXJhbSBhcnJheTxTY2FsYXJGdW5jdGlvbj4gJGZ1bmN0aW9ucwogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":352,"slug":"foreach","name":"forEach","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"callback","type":[{"name":"callable","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"void","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAdHJpZ2dlcgogICAgICoKICAgICAqIEBwYXJhbSBudWxsfGNhbGxhYmxlKFJvd3MgJHJvd3MsIEZsb3dDb250ZXh0ICRjb250ZXh0KSA6IHZvaWQgJGNhbGxiYWNrCiAgICAgKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":373,"slug":"get","name":"get","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[],"return_type":[{"name":"Generator","namespace":"","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBZaWVsZHMgZWFjaCByb3cgYXMgYW4gaW5zdGFuY2Ugb2YgUm93cy4KICAgICAqCiAgICAgKiBAdHJpZ2dlcgogICAgICoKICAgICAqIEByZXR1cm4gXEdlbmVyYXRvcjxSb3dzPgogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":392,"slug":"getasarray","name":"getAsArray","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[],"return_type":[{"name":"Generator","namespace":"","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBZaWVsZHMgZWFjaCByb3cgYXMgYW4gYXJyYXkuCiAgICAgKgogICAgICogQHRyaWdnZXIKICAgICAqCiAgICAgKiBAcmV0dXJuIFxHZW5lcmF0b3I8YXJyYXk8YXJyYXk8bWl4ZWQ+Pj4KICAgICAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":411,"slug":"geteachasarray","name":"getEachAsArray","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[],"return_type":[{"name":"Generator","namespace":"","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBZaWVsZCBlYWNoIHJvdyBhcyBhbiBhcnJheS4KICAgICAqCiAgICAgKiBAdHJpZ2dlcgogICAgICoKICAgICAqIEByZXR1cm4gXEdlbmVyYXRvcjxhcnJheTxtaXhlZD4+CiAgICAgKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":432,"slug":"groupby","name":"groupBy","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"columns","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"algorithm","type":[{"name":"GroupByAlgorithmBuilder","namespace":"Flow\\ETL\\Config\\Grouping","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"GroupedDataFrame","namespace":"Flow\\ETL\\DataFrame","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAbGF6eQogICAgICoKICAgICAqIEBwYXJhbSBHcm91cEJ5UmVmZXJlbmNlc3xSZWZlcmVuY2V8c3RyaW5nICRjb2x1bW5zIGEgc2luZ2xlIGNvbHVtbiBpcyBncm91cGVkIGJ5IG9uIGl0cyBvd24KICAgICAqIEBwYXJhbSBudWxsfEdyb3VwQnlBbGdvcml0aG1CdWlsZGVyICRhbGdvcml0aG0gbnVsbCBkZWZlcnMgdG8gY29uZmlndXJhdGlvbjsgYSBidWlsZGVyIHBpbnMgdGhlCiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxnb3JpdGhtIGZvciB0aGlzIG9wZXJhdGlvbiBhbmQgc2tpcHMgYW55IGF1dG9tYXRpYyBjaG9pY2UKICAgICAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":451,"slug":"join","name":"join","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"dataFrame","type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"on","type":[{"name":"Expression","namespace":"Flow\\ETL\\Join","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"type","type":[{"name":"Join","namespace":"Flow\\ETL\\Join","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Join\\Join::..."},{"name":"algorithm","type":[{"name":"JoinAlgorithmBuilder","namespace":"Flow\\ETL\\Config\\Join","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAbGF6eQogICAgICoKICAgICAqIEBwYXJhbSBudWxsfEpvaW5BbGdvcml0aG1CdWlsZGVyICRhbGdvcml0aG0gbnVsbCBkZWZlcnMgdG8gY29uZmlndXJhdGlvbjsgYSBidWlsZGVyIHBpbnMgdGhlIGFsZ29yaXRobQogICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciB0aGlzIG9wZXJhdGlvbiBhbmQgc2tpcHMgYW55IGF1dG9tYXRpYyBjaG9pY2UKICAgICAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":479,"slug":"joineach","name":"joinEach","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"factory","type":[{"name":"DataFrameFactory","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"on","type":[{"name":"Expression","namespace":"Flow\\ETL\\Join","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"type","type":[{"name":"Join","namespace":"Flow\\ETL\\Join","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Join\\Join::..."}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBKb2lucyBpbiBtZW1vcnkgcGVyIGJhdGNoOyBpdCBpcyBub3QgZ292ZXJuZWQgYnkgdGhlIGpvaW4gYWxnb3JpdGhtIGFuZCB0YWtlcyBubyBhbGdvcml0aG0gb3ZlcnJpZGUuCiAgICAgKgogICAgICogQGxhenkKICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nfEpvaW4gJHR5cGUKICAgICAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":495,"slug":"limit","name":"limit","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"limit","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAbGF6eQogICAgICoKICAgICAqIEB0aHJvd3MgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uCiAgICAgKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":509,"slug":"load","name":"load","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"sink","type":[{"name":"Loader","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false},{"name":"Sink","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAbGF6eQogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":555,"slug":"match","name":"match","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"schema","type":[{"name":"Schema","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"validator","type":[{"name":"SchemaValidator","namespace":"Flow\\ETL","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAbGF6eQogICAgICoKICAgICAqIEBwYXJhbSBudWxsfFNjaGVtYVZhbGlkYXRvciAkdmFsaWRhdG9yIC0gd2hlbiBudWxsLCBTdHJpY3RWYWxpZGF0b3IgZ2V0cyBpbml0aWFsaXplZAogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":576,"slug":"offset","name":"offset","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"offset","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":false,"is_nullable":true,"is_variadic":false,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBTa2lwIGdpdmVuIG51bWJlciBvZiByb3dzIGZyb20gdGhlIGJlZ2lubmluZyBvZiB0aGUgZGF0YXNldC4KICAgICAqIFdoZW4gJG9mZnNldCBpcyBudWxsLCBub3RoaW5nIGhhcHBlbnMgKG5vIHJvd3MgYXJlIHNraXBwZWQpLgogICAgICoKICAgICAqIFBlcmZvcm1hbmNlIE5vdGU6IERhdGFGcmFtZSBtdXN0IGl0ZXJhdGUgdGhyb3VnaCBhbmQgcHJvY2VzcyBhbGwgc2tpcHBlZCByb3dzCiAgICAgKiB0byByZWFjaCB0aGUgb2Zmc2V0IHBvc2l0aW9uLiBGb3IgbGFyZ2Ugb2Zmc2V0cywgdGhpcyBjYW4gaW1wYWN0IHBlcmZvcm1hbmNlCiAgICAgKiBhcyB0aGUgZGF0YSBzb3VyY2Ugc3RpbGwgbmVlZHMgdG8gYmUgcmVhZCBhbmQgcHJvY2Vzc2VkIHVwIHRvIHRoZSBvZmZzZXQgcG9pbnQuCiAgICAgKgogICAgICogQHBhcmFtID9pbnQ8MCwgbWF4PiAkb2Zmc2V0CiAgICAgKgogICAgICogQGxhenkKICAgICAqCiAgICAgKiBAdGhyb3dzIEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbgogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":590,"slug":"onerror","name":"onError","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"handler","type":[{"name":"ErrorHandler","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAbGF6eQogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":602,"slug":"repartition","name":"repartition","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"column","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"columns","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAbGF6eQogICAgICogU2h1ZmZsZXMgdGhlIHN0cmVhbSBzbyBldmVyeSByb3cgc2hhcmluZyB0aGUgZ2l2ZW4gY29sdW1ucyBhcnJpdmVzIGluIG9uZSBiYXRjaC4gSXQgZG9lcyBub3QKICAgICAqIHdyaXRlIGRpcmVjdG9yaWVzIC0gdGhhdCBpcyBkZWNsYXJlZCBvbiB0aGUgbG9hZGVyLCBgdG9fY3N2KC4uLiktPnBhcnRpdGlvbkJ5KCdyZWdpb24nKWAuCiAgICAgKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":614,"slug":"printrows","name":"printRows","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"limit","type":[{"name":"int","namespace":null,"is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"20"},{"name":"truncate","type":[{"name":"int","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"20"},{"name":"formatter","type":[{"name":"Formatter","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Formatter\\AsciiTableFormatter::..."}],"return_type":[{"name":"void","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAdHJpZ2dlcgogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":634,"slug":"explain","name":"explain","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"trigger","type":[{"name":"Trigger","namespace":"Flow\\ETL\\Plan","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Plan\\Trigger::..."}],"return_type":[{"name":"Plan","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBUaGUgcGxhbiAkdHJpZ2dlciB3b3VsZCBydW4gb3ZlciB0aGlzIGZyYW1lLCBmcm96ZW46IGxhdGVyIHZlcmJzIG9uIHRoaXMgZnJhbWUgZG8gbm90IHJlYWNoIGl0LiBUaGUgZGVmYXVsdAogICAgICogYWRkcyBubyBjb25zdW1lciBvZiBpdHMgb3duIC0gaXQgZHJhd3MgdGhlIGZyYW1lIGFzIGJ1aWx0LCBpdHMgY2hhaW4gYW5kIGl0cyBzaW5rcy4gdG9TdHJpbmcoKSBwcmludHMgaXQgYXMgYQogICAgICogdHJlZS4gQW5zd2VycyBmcm9tIHRoZSBwbGFuIHdpdGhvdXQgcmVhZGluZyBhIHJvdy4KICAgICAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":644,"slug":"printschema","name":"printSchema","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"formatter","type":[{"name":"SchemaFormatter","namespace":"Flow\\ETL\\Schema","is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"Flow\\ETL\\Row\\Formatter\\ASCIISchemaFormatter::..."}],"return_type":[{"name":"void","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAbGF6eQogICAgICoKICAgICAqIEB0aHJvd3MgU2NoZW1hTm90RGVyaXZhYmxlRXhjZXB0aW9uCiAgICAgKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":652,"slug":"rename","name":"rename","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"from","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"to","type":[{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAbGF6eQogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":659,"slug":"renameeach","name":"renameEach","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"strategies","type":[{"name":"RenameColumnStrategy","namespace":"Flow\\ETL\\Transformer\\Rename","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":670,"slug":"rows","name":"rows","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"transformer","type":[{"name":"Transformer","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false},{"name":"Transformation","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAbGF6eQogICAgICogQWxpYXMgZm9yIEVUTDo6dHJhbnNmb3JtIG1ldGhvZC4KICAgICAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":687,"slug":"run","name":"run","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"analyze","type":[{"name":"Analyze","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false},{"name":"bool","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":true,"is_nullable":false,"is_variadic":false,"default_value":"false"}],"return_type":[{"name":"Report","namespace":"Flow\\ETL\\Dataset","is_nullable":true,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAdHJpZ2dlcgogICAgICoKICAgICAqIFdoZW4gYW5hbHl6aW5nIHBpcGVsaW5lIGV4ZWN1dGlvbiB3ZSBjYW4gY2hvc2UgdG8gY29sbGVjdCB2YXJpb3VzIG1ldHJpY3MgdGhyb3VnaCBhbmFseXplKCktPndpdGgqKCkgbWV0aG9kCiAgICAgKgogICAgICogLSBjb2x1bW4gc3RhdGlzdGljcyAtIGFuYWx5emUoKS0+d2l0aENvbHVtblN0YXRpc3RpY3MoKQogICAgICogLSBzY2hlbWEgLSBhbmFseXplKCktPndpdGhTY2hlbWEoKQogICAgICoKICAgICAqIEBwYXJhbSBBbmFseXplfGJvb2wgJGFuYWx5emUgLSB3aGVuIHNldCBydW4gd2lsbCByZXR1cm4gUmVwb3J0CiAgICAgKgogICAgICogQHJldHVybiAoJGFuYWx5emUgaXMgQW5hbHl6ZXx0cnVlID8gUmVwb3J0IDogbnVsbCkKICAgICAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":715,"slug":"schema","name":"schema","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[],"return_type":[{"name":"Schema","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAbGF6eQogICAgICoKICAgICAqIEB0aHJvd3MgU2NoZW1hTm90RGVyaXZhYmxlRXhjZXB0aW9uCiAgICAgKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":728,"slug":"select","name":"select","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"columns","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAbGF6eQogICAgICogS2VlcCBvbmx5IGdpdmVuIGNvbHVtbnMuCiAgICAgKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":742,"slug":"sortby","name":"sortBy","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"columns","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false},{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"algorithm","type":[{"name":"SortAlgorithmBuilder","namespace":"Flow\\ETL\\Config\\Sort","is_nullable":true,"is_variadic":false}],"has_default_value":true,"is_nullable":true,"is_variadic":false,"default_value":"null"}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAbGF6eQogICAgICoKICAgICAqIEBwYXJhbSBSZWZlcmVuY2V8U29ydFJlZmVyZW5jZXN8c3RyaW5nICRjb2x1bW5zIGEgc2luZ2xlIGNvbHVtbiBpcyBzb3J0ZWQgYnkgb24gaXRzIG93bgogICAgICogQHBhcmFtIG51bGx8U29ydEFsZ29yaXRobUJ1aWxkZXIgJGFsZ29yaXRobSBudWxsIGRlZmVycyB0byBjb25maWd1cmF0aW9uOyBhIGJ1aWxkZXIgcGlucyB0aGUgYWxnb3JpdGhtCiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIHRoaXMgb3BlcmF0aW9uIGFuZCBza2lwcyBhbnkgYXV0b21hdGljIGNob2ljZQogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":756,"slug":"transform","name":"transform","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"transformer","type":[{"name":"Transformer","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false},{"name":"Transformation","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false},{"name":"Transformations","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false},{"name":"WithColumn","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBBbGlhcyBmb3IgRGF0YUZyYW1lOjp3aXRoKCkuCiAgICAgKgogICAgICogQGxhenkKICAgICAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":767,"slug":"until","name":"until","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"function","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBUaGUgZGlmZmVyZW5jZSBiZXR3ZWVuIGZpbHRlciBhbmQgdW50aWwgaXMgdGhhdCBmaWx0ZXIgd2lsbCBrZWVwIGZpbHRlcmluZyByb3dzIHVudGlsIGV4dHJhY3RvcnMgZmluaXNoIHlpZWxkaW5nCiAgICAgKiByb3dzLiBVbnRpbCB3aWxsIHNlbmQgYSBTVE9QIHNpZ25hbCB0byB0aGUgRXh0cmFjdG9yIHdoZW4gdGhlIGNvbmRpdGlvbiBpcyBub3QgbWV0LgogICAgICoKICAgICAqIEBsYXp5CiAgICAgKi8="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":781,"slug":"void","name":"void","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAbGF6eQogICAgICogVGhpcyBtZXRob2QgaXMgdXNlZnVsIG1vc3RseSBpbiBkZXZlbG9wbWVudCB3aGVuCiAgICAgKiB5b3Ugd2FudCB0byBwYXVzZSBwcm9jZXNzaW5nIGF0IGNlcnRhaW4gbW9tZW50IHdpdGhvdXQKICAgICAqIHJlbW92aW5nIGNvZGUuIEFsbCBvcGVyYXRpb25zIHdpbGwgZ2V0IHByb2Nlc3NlZCB1cCB0byB0aGlzIHBvaW50LAogICAgICogZnJvbSBoZXJlIG5vIHJvd3MgYXJlIHBhc3NlZCBmb3J3YXJkLgogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":791,"slug":"with","name":"with","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"transformer","type":[{"name":"Transformer","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false},{"name":"Transformation","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false},{"name":"Transformations","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false},{"name":"WithColumn","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAbGF6eQogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":819,"slug":"withcolumn","name":"withColumn","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"column","type":[{"name":"Definition","namespace":"Flow\\ETL\\Schema","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"reference","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"WindowFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAcGFyYW0gRGVmaW5pdGlvbjxtaXhlZD58c3RyaW5nICRjb2x1bW4KICAgICAqCiAgICAgKiBAbGF6eQogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":839,"slug":"withcolumns","name":"withColumns","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"references","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAbGF6eQogICAgICoKICAgICAqIEBwYXJhbSBhcnJheTxpbnQsIFdpdGhDb2x1bW4+fGFycmF5PHN0cmluZywgU2NhbGFyRnVuY3Rpb258V2luZG93RnVuY3Rpb258V2l0aENvbHVtbj4gJHJlZmVyZW5jZXMKICAgICAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":859,"slug":"withentries","name":"withEntries","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"references","type":[{"name":"array","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAZGVwcmVjYXRlZCBVc2Uge0BzZWUgRGF0YUZyYW1lOjp3aXRoQ29sdW1ucygpfSBpbnN0ZWFkLgogICAgICoKICAgICAqIEBsYXp5CiAgICAgKgogICAgICogQHBhcmFtIGFycmF5PGludCwgV2l0aENvbHVtbj58YXJyYXk8c3RyaW5nLCBTY2FsYXJGdW5jdGlvbnxXaW5kb3dGdW5jdGlvbnxXaXRoQ29sdW1uPiAkcmVmZXJlbmNlcwogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":871,"slug":"withentry","name":"withEntry","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"entry","type":[{"name":"Definition","namespace":"Flow\\ETL\\Schema","is_nullable":false,"is_variadic":false},{"name":"string","namespace":null,"is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"reference","type":[{"name":"ScalarFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false},{"name":"WindowFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAZGVwcmVjYXRlZCBVc2Uge0BzZWUgRGF0YUZyYW1lOjp3aXRoQ29sdW1uKCl9IGluc3RlYWQuCiAgICAgKgogICAgICogQHBhcmFtIERlZmluaXRpb248bWl4ZWQ+fHN0cmluZyAkZW50cnkKICAgICAqCiAgICAgKiBAbGF6eQogICAgICov"},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame.php","start_line_in_file":880,"slug":"write","name":"write","class":"Flow\\ETL\\DataFrame","class_slug":"dataframe","parameters":[{"name":"sink","type":[{"name":"Loader","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false},{"name":"Sink","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":"LyoqCiAgICAgKiBAbGF6eQogICAgICogQWxpYXMgZm9yIEVUTDo6bG9hZCBmdW5jdGlvbi4KICAgICAqLw=="},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame\/GroupedDataFrame.php","start_line_in_file":21,"slug":"aggregate","name":"aggregate","class":"Flow\\ETL\\DataFrame\\GroupedDataFrame","class_slug":"groupeddataframe","parameters":[{"name":"aggregations","type":[{"name":"AggregatingFunction","namespace":"Flow\\ETL\\Function","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":true,"default_value":null}],"return_type":[{"name":"DataFrame","namespace":"Flow\\ETL","is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":null},{"repository_path":"src\/core\/etl\/src\/Flow\/ETL\/DataFrame\/GroupedDataFrame.php","start_line_in_file":28,"slug":"pivot","name":"pivot","class":"Flow\\ETL\\DataFrame\\GroupedDataFrame","class_slug":"groupeddataframe","parameters":[{"name":"ref","type":[{"name":"Reference","namespace":"Flow\\ETL\\Row","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null},{"name":"values","type":[{"name":"PivotValues","namespace":"Flow\\ETL\\GroupBy","is_nullable":false,"is_variadic":false}],"has_default_value":false,"is_nullable":false,"is_variadic":false,"default_value":null}],"return_type":[{"name":"self","namespace":null,"is_nullable":false,"is_variadic":false}],"attributes":[],"scalar_function_chain":false,"doc_comment":null}] \ No newline at end of file

6>Eetaz~*?yLT$PAQ;huexhR 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%0A20FsM!O=Cx7kG#|7CZrW=~CQmD~JqVbTv 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 delta 324464 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%0A;gNe&s;f6FVE0Lcmqh5P3lK-`CUJqJpLL+ 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