projects
/
pspp
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Make FILTER without any further keywords turn off filtering, with a
[pspp]
/
src
/
language
/
stats
/
aggregate.c
diff --git
a/src/language/stats/aggregate.c
b/src/language/stats/aggregate.c
index 793a7256f2ee792e9cf04e81075a8bc17aa9f7f4..491578398bf099cb6c14ea4b976f89face0df954 100644
(file)
--- a/
src/language/stats/aggregate.c
+++ b/
src/language/stats/aggregate.c
@@
-18,26
+18,32
@@
02110-1301, USA. */
#include <config.h>
02110-1301, USA. */
#include <config.h>
-#include <libpspp/message.h>
+
#include <stdlib.h>
#include <stdlib.h>
-#include <libpspp/alloc.h>
+
#include <data/any-writer.h>
#include <data/any-writer.h>
+#include <data/case-sink.h>
#include <data/case.h>
#include <data/casefile.h>
#include <data/case.h>
#include <data/casefile.h>
-#include <language/command.h>
#include <data/dictionary.h>
#include <data/dictionary.h>
-#include <libpspp/message.h>
#include <data/file-handle-def.h>
#include <data/file-handle-def.h>
+#include <data/procedure.h>
+#include <data/settings.h>
+#include <data/storage-stream.h>
+#include <data/sys-file-writer.h>
+#include <data/variable.h>
+#include <language/command.h>
+#include <language/data-io/file-handle.h>
#include <language/lexer/lexer.h>
#include <language/lexer/lexer.h>
+#include <language/stats/sort-criteria.h>
+#include <libpspp/alloc.h>
+#include <libpspp/message.h>
+#include <libpspp/message.h>
#include <libpspp/misc.h>
#include <libpspp/misc.h>
-#include <math/moments.h>
#include <libpspp/pool.h>
#include <libpspp/pool.h>
-#include <data/settings.h>
-#include <data/sys-file-writer.h>
-#include <math/sort.h>
#include <libpspp/str.h>
#include <libpspp/str.h>
-#include <
data/variable
.h>
-#include <
procedure
.h>
+#include <
math/moments
.h>
+#include <
math/sort
.h>
#include "gettext.h"
#define _(msgid) gettext (msgid)
#include "gettext.h"
#define _(msgid) gettext (msgid)
@@
-148,10
+154,10
@@
static int aggregate_single_case (struct agr_proc *agr,
static void dump_aggregate_info (struct agr_proc *agr, struct ccase *output);
/* Aggregating to the active file. */
static void dump_aggregate_info (struct agr_proc *agr, struct ccase *output);
/* Aggregating to the active file. */
-static bool agr_to_active_file (struct ccase *, void *aux);
+static bool agr_to_active_file (
const
struct ccase *, void *aux);
/* Aggregating to a system file. */
/* Aggregating to a system file. */
-static bool presorted_agr_to_sysfile (struct ccase *, void *aux);
+static bool presorted_agr_to_sysfile (
const
struct ccase *, void *aux);
\f
/* Parsing. */
\f
/* Parsing. */
@@
-254,7
+260,7
@@
cmd_aggregate (void)
{
/* The active file will be replaced by the aggregated data,
so TEMPORARY is moot. */
{
/* The active file will be replaced by the aggregated data,
so TEMPORARY is moot. */
-
cancel_temporary
();
+
proc_cancel_temporary_transformations
();
if (agr.sort != NULL && !presorted)
{
if (agr.sort != NULL && !presorted)
{
@@
-265,7
+271,7
@@
cmd_aggregate (void)
agr.sink = create_case_sink (&storage_sink_class, agr.dict, NULL);
if (agr.sink->class->open != NULL)
agr.sink->class->open (agr.sink);
agr.sink = create_case_sink (&storage_sink_class, agr.dict, NULL);
if (agr.sink->class->open != NULL)
agr.sink->class->open (agr.sink);
-
vfm_sink = create_case_sink (&null_sink_class, default_dict, NULL
);
+
proc_set_sink (create_case_sink (&null_sink_class, default_dict, NULL)
);
if (!procedure (agr_to_active_file, &agr))
goto error;
if (agr.case_cnt > 0)
if (!procedure (agr_to_active_file, &agr))
goto error;
if (agr.case_cnt > 0)
@@
-274,10
+280,10
@@
cmd_aggregate (void)
if (!agr.sink->class->write (agr.sink, &agr.agr_case))
goto error;
}
if (!agr.sink->class->write (agr.sink, &agr.agr_case))
goto error;
}
- di
ct_destroy (default_dict
);
+ di
scard_variables (
);
default_dict = agr.dict;
agr.dict = NULL;
default_dict = agr.dict;
agr.dict = NULL;
-
vfm_source = agr.sink->class->make_source (agr.sink
);
+
proc_set_source (agr.sink->class->make_source (agr.sink)
);
free_case_sink (agr.sink);
}
else
free_case_sink (agr.sink);
}
else
@@
-589,7
+595,6
@@
parse_aggregate_functions (struct agr_proc *agr)
}
free (dest[i]);
}
free (dest[i]);
- destvar->init = 0;
if (dest_label[i])
{
destvar->label = dest_label[i];
if (dest_label[i])
{
destvar->label = dest_label[i];
@@
-1069,7
+1074,7
@@
initialize_aggregate_info (struct agr_proc *agr, const struct ccase *input)
are dropped.
Returns true if successful, false if an I/O error occurred. */
static bool
are dropped.
Returns true if successful, false if an I/O error occurred. */
static bool
-agr_to_active_file (struct ccase *c, void *agr_)
+agr_to_active_file (
const
struct ccase *c, void *agr_)
{
struct agr_proc *agr = agr_;
{
struct agr_proc *agr = agr_;
@@
-1082,7
+1087,7
@@
agr_to_active_file (struct ccase *c, void *agr_)
/* Aggregate the current case and output it if we passed a
breakpoint. */
static bool
/* Aggregate the current case and output it if we passed a
breakpoint. */
static bool
-presorted_agr_to_sysfile (struct ccase *c, void *agr_)
+presorted_agr_to_sysfile (
const
struct ccase *c, void *agr_)
{
struct agr_proc *agr = agr_;
{
struct agr_proc *agr = agr_;